码迷,mamicode.com
首页 > 编程语言 > 详细

不同平台的线程并发接口对比

时间:2019-04-28 19:10:41      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:linu   sdl   msdn   基于   get   线程id   log   for   open   

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函数:销毁信号量

原子操作

不同平台的线程并发接口对比

标签:linu   sdl   msdn   基于   get   线程id   log   for   open   

原文地址:https://www.cnblogs.com/jiangzhaowei/p/10785556.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!