首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

请教Mutex如何使用

2012-03-16 
请问Mutex怎么使用?C/C++ codeHANDLE hMutexvolatile int retint main(){hMutexCreateMutex(NULL,false

请问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的参数,如果它的标志为真,等到之后它的标志就自动变成假了.

热点排行