在 windows 中使用互斥锁进行进程间同步(win32 或 C++)
Posted
技术标签:
【中文标题】在 windows 中使用互斥锁进行进程间同步(win32 或 C++)【英文标题】:Interprocess synchronization using mutex in windows(win32 or C++) 【发布时间】:2012-10-11 10:06:28 【问题描述】:我想在 2 个进程之间建立线程同步。基本上一个线程在 App1.exe 中运行,第二个进程在 App2.exe 中运行。我如何在 Windows 中同步这两个线程。有人可以分享一些示例或链接。
【问题讨论】:
【参考方案1】:可能性:
WINAPI Mutex 是一种进程间同步机制。有关概述,请参阅 Using Mutex Objects。boost::mutex
。首选此功能的一个原因是提供的 scoped_lock
功能可确保无论范围如何退出(异常或多个 return
语句)都会释放锁。
【讨论】:
就是这样。特别要注意的是,Windows 互斥锁是跨进程的(进程本地互斥锁称为critical sections)。 仅当您指定名称时,Windows 互斥锁才是跨进程的。显然,如果您不使用跨进程,则很少有理由更喜欢互斥锁,并且有很多理由更喜欢关键部分。 所以应该使用命名互斥体并且必须在进程之间共享名称? @user1687824,这是正确的。您还应该阅读Kernel object namespaces。以上是关于在 windows 中使用互斥锁进行进程间同步(win32 或 C++)的主要内容,如果未能解决你的问题,请参考以下文章
Linux进程间通信(互斥锁、条件变量、读写锁、文件锁、信号灯)