互斥

来源:互联网 发布:手机下载js插件怎么用 编辑:程序博客网 时间:2024/04/30 11:02

以Mutex为例:

1、用计数来互斥--

不同的线程在Init时CreateMutex(FALSE)来得到各自Mutex的Handle.

在open时Waitforsingleobject(hMutex);退出时releaseMutex.

Deinit时CloseHandle(hMutex);

2、用有无来互斥:

在open时createMutex,如果GetLastError() = ALREADY_EXSISTED,则CloseHandle(hMutex),退出。

 

Mutex和event的区别:

Mutex如果create时参数为FALSE,则谁先waitforsingleobject,谁先得到mutex。

而event如果create时参数为FALSE,则wait时谁都进不去,故create时应置参数为TRUE。