windows实现互斥量同步
时间: 2023-07-11 14:48:05 浏览: 102
pv_rw.rar_Windows编程_C++_
Windows 中可以使用互斥量(Mutex)实现同步。互斥量是一种同步对象,用于控制多个线程的访问共享资源,以避免竞争条件的发生。
以下是一个简单的示例代码,展示了如何使用互斥量实现同步:
```
#include <windows.h>
int main()
{
HANDLE hMutex;
// 创建互斥量
hMutex = CreateMutex(NULL, FALSE, "MyMutex");
if (hMutex == NULL)
{
// 创建互斥量失败
return 1;
}
// 等待互斥量
WaitForSingleObject(hMutex, INFINITE);
// 访问共享资源
// 释放互斥量
ReleaseMutex(hMutex);
// 关闭互斥量句柄
CloseHandle(hMutex);
return 0;
}
```
在示例中,CreateMutex() 函数创建了一个名为 "MyMutex" 的互斥量,并返回一个句柄。WaitForSingleObject() 函数等待互斥量,当互斥量可用时,线程可以访问共享资源。访问完成后,线程需要调用 ReleaseMutex() 函数释放互斥量。最后,调用 CloseHandle() 函数关闭互斥量句柄。
需要注意的是,互斥量只能用于同一进程内的线程之间的同步,如果需要在不同进程间同步,则需要使用命名互斥量。
阅读全文