使用 Windows API 提供的互斥量(mutex)代替 C++ 标准库的
#include
#include
int main()
{
HANDLE mutex = CreateMutex(NULL, FALSE, NULL);
if (mutex == NULL)
{
std::cerr << "Error creating mutex!" << std::endl;
return 1;
}
DWORD result = WaitForSingleObject(mutex, INFINITE);
if (result == WAIT_OBJECT_0)
std::cout << "Mutex has been acquired." << std::endl;
// do some critical work
ReleaseMutex(mutex);
std::cout << "Mutex has been released." << std::endl;
CloseHandle(mutex);
return 0;
}