猿问

我将Mutex用于多进程同步。 可是感到迷茫,不知这三个函数该如何配对?

显然第一次CreateMutex()之后最终要CloseHandle(),但中间使用OpenMutex()后是否要CloseHandle()?有时出现第二次使用CreateMutex()代替OpenMutex()的情况,不知这是否也要CloseHandle()?
请给出个试验代码说明问题好吗?
似乎明白了些,句柄和对象是两个不同的概念。CloseHandle()在字面上已经表达了是“关闭句柄”,不是关闭对象。因此使用CloseHandle()不用担心对象也被关闭了。而OpenMutex()返回的是一个指向mutex对象的句柄,是一个新的句柄,与CreateMutex()返回的句柄一样但不是同一个。
是像上面这段理解吗?如果是,那么又出现了个问题:
Mutex对象只用创建不用关闭吗?我没有找到所谓的关闭Mutex对象的句柄。

人到中年有点甜
浏览 69回答 1
1回答

神不在的星期二

需要的HANDLE hMutex = CreateMutex(..."mymutex");HANDLE hMutex1 = OpenMutex(.."mymutex");CloseHandle(hMutex1);CloseHandle(hMutex);
随时随地看视频慕课网APP
我要回答