互斥量:同一时刻只允许一个线程访问代码段,可以跨进程操作
CreateMutex(0,1,0);创建互斥量
Waitforsingleobject(hMutex);等hMutex信号
ReleaseMutex(hMutex)将hMutex恢复
事件:同一时刻只允许一个线程访问代码段,
CreateEventA(0,FALSE,TRUE,NULL);自动,有信号
CreateEvent(0,TRUE,FALSE,NULL);手动,无信号
//释放单个等待线程后,系统会自动将状态重置为未签名
Waitforsingleobject(hEvent);等hEvent信号
SetEvent();将事件置为有信号
信号量:同一时刻只允许指定个数线程访问代码段,计算最大值10
CreateSemaphore(0,
1,//信号灯对象的初始计数。 此值必须大于或等于零
1,//信号量对象的最大计数。 此值必须大于零。
0);
Waitforsingleobject(hSemaphore);等hSemaphore信号
ReleaseSemaphore(hSemaphore,
1,//将指定信号灯对象的计数增加指定的量。
NULL);