为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

1 回答

?
神不在的星期二

TA贡献1963条经验 获得超6个赞

需要的
HANDLE hMutex = CreateMutex(..."mymutex");

HANDLE hMutex1 = OpenMutex(.."mymutex");
CloseHandle(hMutex1);

CloseHandle(hMutex);

查看完整回答
反对 回复 2023-03-06
  • 1 回答
  • 0 关注
  • 68 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信