【发布时间】:2013-12-16 17:33:01
【问题描述】:
我有一个在非信号状态下创建的互斥锁
HANDLE hmutex= CreateMutex(NULL,FALSE,"");---1
现在我正在打电话
DWORD dw = WaitForSingleObject(hmutex,0); ---2
由于 hmutex 没有发出信号,WaitForSingleObject 会立即返回,但 hmutex 的状态会变成已发出信号??
如果另一个线程调用第二条语句会发生什么?
【问题讨论】:
-
您正在创建一个名称为空的命名互斥锁。这是故意的吗?
-
是的,这是故意的
-
不要那样做(使用空名),这是在乞求碰撞。如果您不想要名称,请传递 NULL 并接收未命名的互斥体。
-
@Ben: 谢谢你的建议,会处理的
标签: multithreading winapi visual-c++ mutex