【发布时间】:2010-08-24 01:22:50
【问题描述】:
请看下面的代码:
#include <windows.h>
int main(int argc, char* argv[])
{
HANDLE _mutex = ::CreateMutex(NULL, FALSE, "abc");
if (!_mutex)
throw std::runtime_error("CreateMutex failed");
if (::WaitForSingleObject(_mutex, INFINITE) != WAIT_OBJECT_0)
throw std::runtime_error("WaitForSingleObject failed");
printf("Must lock here\n");
if (::WaitForSingleObject(_mutex, INFINITE) != WAIT_OBJECT_0)
throw std::runtime_error("WaitForSingleObject failed");
printf("Why come here????\n");
return 0;
}
我不知道为什么控制台打印出来:
Must lock here
Why come here???
互斥锁不起作用吗?我只想显示结果
Must lock here
并在打印上面的文字后阻塞。
【问题讨论】: