windows实现互斥量同步
时间: 2023-07-11 16:50:15 浏览: 86
在 Windows 平台上,可以使用 CreateMutex 函数来创建互斥量,使用 WaitForSingleObject 和 ReleaseMutex 函数来实现互斥量同步。具体步骤如下:
1. 调用 CreateMutex 函数创建一个互斥量。
2. 在需要进行同步的代码段前调用 WaitForSingleObject 函数等待互斥量。
3. 在代码段执行完毕后调用 ReleaseMutex 函数释放互斥量。
示例代码如下:
```c++
HANDLE hMutex = CreateMutex(NULL, FALSE, "MyMutex");
if (hMutex == NULL)
{
// 创建互斥量失败
return;
}
// 等待互斥量
DWORD dwWaitResult = WaitForSingleObject(hMutex, INFINITE);
if (dwWaitResult != WAIT_OBJECT_0)
{
// 等待互斥量失败
return;
}
// 执行需要同步的代码
// 释放互斥量
ReleaseMutex(hMutex);
CloseHandle(hMutex); // 关闭互斥量句柄
```
在上面的示例代码中,使用 CreateMutex 函数创建了一个名为 "MyMutex" 的互斥量。在需要进行同步的代码段前调用 WaitForSingleObject 函数等待互斥量,等待成功后执行需要同步的代码,然后调用 ReleaseMutex 函数释放互斥量。最后使用 CloseHandle 函数关闭互斥量句柄。
阅读全文