【问题标题】:Interprocess synchronization using mutex in windows(win32 or C++)在 windows 中使用互斥锁进行进程间同步(win32 或 C++)
【发布时间】:2025-12-06 02:50:01
【问题描述】:

我想在 2 个进程之间建立线程同步。基本上一个线程在 App1.exe 中运行,第二个进程在 App2.exe 中运行。我如何在 Windows 中同步这两个线程。有人可以分享一些示例或链接。

【问题讨论】:

    标签: c++ windows multithreading synchronization


    【解决方案1】:

    可能性:

    • WINAPI Mutex 是一种进程间同步机制。有关概述,请参阅 Using Mutex Objects
    • boost::mutex。首选此功能的一个原因是提供的 scoped_lock 功能可确保无论范围如何退出(异常或多个 return 语句)都会释放锁。

    【讨论】:

    • 就是这样。特别要注意的是,Windows 互斥锁是跨进程的(进程本地互斥锁称为critical sections)。
    • 仅当您指定名称时,Windows 互斥锁才是跨进程的。显然,如果您不使用跨进程,则很少有理由更喜欢互斥锁,并且有很多理由更喜欢关键部分。
    • 所以应该使用命名互斥体并且必须在进程之间共享名称?
    • @user1687824,这是正确的。您还应该阅读Kernel object namespaces