qiuri2008

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

SDL2中的并发线程机制

线程管理

  • 线程创建——SDL_CreateThread
  • 线程销毁——SDL_DetachThread
  • 获得线程ID——SDL_GetThreadID/SDL_ThreadID
  • 获得线程名称——SDL_GetThreadName
  • 设置线程优先级——SDL_SetThreadPriority
  • 等待线程结束——SDL_WaitThread

线程同步机制

  • 条件量
    • SDL_CreateCond
    • SDL_DestroyCond
    • SDL_CondBroadcast
    • SDL_CondSignal
    • SDL_CondWait
    • SDL_CondWaitTimeout
  • 互斥量
    • SDL_CreateMutex
    • SDL_DestroyMutex
    • SDL_LockMutex
    • SDL_TryLockMutex
    • SDL_UnlockMutex
  • 信号量
    • SDL_CreateSemaphore
    • SDL_DestroySemaphore
    • SDL_SemPost
    • SDL_SemTryWait
    • SDL_SemValue
    • SDL_SemWait
    • SDL_SemWaitTimeout

原子操作

  • SDL_AtomicAdd
  • SDL_AtomicGet
  • SDL_AtomicLock
  • SDL_AtomicSet

关于函数详细说明,建议参考sdl-wiki

Windows下线程并发机制

线程管理--MSDN

  • 线程创建——CreateThread、_beginthread、_beginthreadex
  • 线程结束——ExitThread、_endthread、_endthreadex
  • 强制线程结束——TerminateThread
  • 获取和设置线程优先级——GetThreadPriority、SetThreadPriority
  • 等待线程结束——WaitForSingleObject
  • 获取线程id——GetThreadID
  • 获得线程句柄——OpenThread、GetCurrentThread、CloseHandle
  • 获得线程退出码——GetExitCodeThread

线程同步机制--同步对象&线程同步

  • Critical Section
  • Condition
  • Muxtex
  • Event
  • Semaphore
  • Waitable Timer
  • Thread/Process Handle

更多的细节建议参考MSDN上介绍。

原子操作——Interlocked系列

  • 自增——InterlockedIncrement
  • 自减——InterlockedDecrement

Linux下线程并发机制

由于我之前对Linux编程未关注,线程并发了解并不多,不过从搜索结果来看多数还是pthread库。
这里先基于这个版本整理下。

线程管理

  • 线程创建——pthread_create()
  • 线程终止——pthread_exit()
  • 线程异常终止——pthread_cancel()
  • 等待线程结束——pthread_join()
  • 初始化、销毁线程的属性——pthread_attr_init()、pthread_attr_destroy()
  • 杀死线程信号——pthread_kill()
  • 判断两个线程是否一致——pthread_equal()
  • 分离线程——pthread_detach()
  • 查询线程标识号——pthread_self()

线程同步机制

  • 互斥量Mutex
    • pthread_mutex_init() 初始化互斥锁
    • pthread_mutex_destroy() 删除互斥锁
    • pthread_mutex_lock() 占有互斥锁(阻塞操作)
    • pthread_mutex_trylock():试图占有互斥锁(不阻塞操作)。即,当互斥锁空闲时,将占有该锁;否则,立即返回。
    • pthread_mutex_unlock(): 释放互斥锁
  • 条件变量 Condition
    • pthread_cond_init():初始化条件变量
    • pthread_cond_destroy():销毁条件变量
    • pthread_cond_signal(): 唤醒第一个调用pthread_cond_wait()而进入睡眠的线程
    • pthread_cond_wait(): 等待条件变量的特殊条件发生
  • 信号量 sem
    • sem_init函数:该函数用于创建信号量
    • sem_wait函数:等待并获取信号量
    • sem_post函数:释放信号量
    • sem_destroy函数:销毁信号量

原子操作

posted on 2019-04-28 17:58  江召伟  阅读(262)  评论(0编辑  收藏  举报