windows常用的几种同步对象:
1、互斥对象Mutex:
函数:
CreateMutex //有带名字
ReleaseMutex
注:与WaitForSingleObject(mutex,INFINITE);配合使用
功能:因为有带名字,所以可以用来同步不同的进程.
缺点:Mutex对象的操作比较费时.
2、同步对象CriticalSection:
函数:
InitializeCriticalSection
EnterCriticalSection
LeaveCriticalSection
DeleteCriticalSection
优点:效率高
缺点:只能用于一个进程内部的线程间的同步
3、事件对象Event:
Event 对象可以被分为两种:一种是自动复位对象(Auto-reset)一种是手动复位对象(Manual-reset)。
对于一个自动复位的Event对象而言,如果当前有多个线程正在等待这个对象,那么当这个对象变为有信号对象的时候,只有这若干个等待线程中的一个被唤醒。而且这个Event 对象将立刻被置为无信号状态。与此不同,当多个线程等待在一个手动复位的(Manual-reset)Event对象的时候,一旦这个对象变为有信号状态这若干个对象将都被唤醒。
函数:
CreateEvent //创建TRUE时为手动复位型,FALSE时为自动复位型
SetEvent //设为有信号状态
ResetEvent //设为无信号状态