将互斥锁放在C/C++中的窗口上的内存映射文件中

Windows是否提供可以放置在内存映射文件中并在多个进程中使用的任何类型的互斥锁?

理想情况下,它必须完全自包含,以便它可以在文件中自行存活,即使在重新启动时也是如此.
此外,如果我只是在没有进程运行的情况下手动删除文件,则不应泄漏任何资源.

如果可能,解决方案还应提供附带的“条件”概念,该概念也应该是可以位于共享内存映射文件中的对象.

简而言之,我需要类似于具有SHARED属性的PTHREADS互斥锁.

据我所知,仅使用PTHREADS互斥锁是不可能的,因为在PTHREADS的Windows端口中不支持SHARED属性.

解决方法:

要共享同步对象,请在创建对象时为其指定名称并在每个进程中使用相同的名称.

以下同步对象可以在进程之间共享:

> Mutex
> Semaphore
> Event

Critical sections无法共享,但速度更快.

使用wait函数系列(通常是WaitForMultipleObjects)来测试或等待这些对象.

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...