请问Mutex怎么使用?
- C/C++ code
HANDLE hMutex;volatile int ret;int main(){ hMutex=CreateMutex(NULL,false,NULL); //创建Mutex ret=WaitForSingleObject(hMutex,INFINITE); //第一次可以等到Mutex ret=WaitForSingleObject(hMutex,INFINITE); //第一次还能等到Mutex,怎么回事? while(1);}建立一个Mutex,
怎么两次都能等到Mutex?
问题出在哪里??
[解决办法]
Mutex是递归锁,在已获得所有权的线程上多次Wait是不会死锁的。
[解决办法]
WaitForSingleObject(hMutex,INFINITE); 好象是说等hMutex直到它有所谓的标志吧.
当它有标志了,那么你再去WaitFor,它一样还是又标志的,无论你WaitFor多少次都是有标志的....
事件的时候,有个AUTO的参数,如果它的标志为真,等到之后它的标志就自动变成假了.