Linux与Windows API对比
对象 |
操作 |
Linux API |
Windows API |
线程 |
创建 |
pthread_create() |
CreateThread() |
退出 |
pthread_exit() |
ThreadExit() |
|
等待 |
pthread_join() |
WaitForSingleObject() |
|
互斥锁 |
创建 |
pthread_mutex_init() |
CreateMutex() |
销毁 |
pthread_mutex_destroy() |
CloseHandle() |
|
加锁 |
pthread_mutex_lock() |
WaitForSingleObject() |
|
解锁 |
pthread_mutex_unlock() |
ReleaseMutex() |
|
事件 |
创建 |
pthread_cond_init() |
CreateEvent() |
锁毁 |
pthread_cond_destroy() |
CloseHandle() |
|
触发 |
pthread_cond_signal() |
SetEvent() |
|
广播 |
pthread_cond_broadcast() |
SetEvent() / ResetEvent() |
|
等待 |
pthread_cond_wait() / pthread_cond_timewait() |
SingleObjectAndWait() |
|
信号量 |
创建 |
sem_init() |
CreateSemaphore() |
获取(P) |
sem_wait() |
WaitForSingleObject() |
|
释放(V) |
sem_post() |
ReleaseSemaphore() |
|
销毁 |
sem_destroy() |
CloseHandle() |
|
临界区 |
创建 |
—— |
InitializeCriticalSection() |
加锁 |
—— |
EnterCriticalSection() |
|
解锁 |
—— |
LeaveCriticalSection() |
|
销毁 |
—— |
DeleteCriticalSection() |
|
消息队列 |
创建 |
msgget() |
—— |
发送 |
msgsnd() |
—— |
|
接收 |
msgrcv() |
—— |
|
销毁 |
msgctl() |
—— |
参考:
http://www.ibm.com/developerworks/cn/linux/l-cn-mthreadps/index.html
Linux程序设计[第四版] 人民邮电出版社