多线程同步

来源:互联网 发布:淘宝打印机 怎么设置 编辑:程序博客网 时间:2024/05/01 15:15
CRITICAL_SECITON --关键区
InitializeCriticalSection()
DeleteCriticalSection()
EnterCriticalSection()
LeaveCriticalSection()
1)是windows里面的一个结构体。
2)拥有线程所有权,所以不能用来进行线程同步,只能用来进行线程见的互斥。
Event -- 事件
CreateEvent()
OpenEvent()
SetEvent()
ResetEvent()
CloseHandle()
1)分为手动重置事件和自动重置事件,手动重置事件,在事件变为触发状态时,处于WaitForSingleObject的线程都会被激活运行;自动重置事件,在事件变味触发状态时,处于WaitForSingleObject的某个线程成功等待后,需调用ResetEvent将事件设为非触发状态。
2)事件可以用来进行线程同步。
Mutex--互斥量
CreateMutex()
OpenMutex()
ReleaseMutex()
CloseHandle()
1)Mutex是一个内核对象,他和关键区(CRITICAL_SECTION)一样都有线程所以权,所以,不能用于线程的同步。
2)Mutex能够用于多个进程间的互斥问题,并且能够完美的解决因为进程意外终止而造成的“遗弃”问题
Semaphore -- 信号量
CreateSemaphore()
OpenSemaphore()
ReleaseSemaphore()
CloseHandle()
0 0
原创粉丝点击