在 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进程间通信(互斥锁、条件变量、读写锁、文件锁、信号灯)

C# 多线程系列进程同步Mutex类

信号量与进程/线程间同步与互斥

python并发编程之多进程:互斥锁(同步锁)&进程其他属性&进程间通信(queue)&生产者消费者模型

第三十六天 守护进程 互斥锁 进程间通讯

任意进程的python进程间互斥锁