为啥名为 mutex 的 boost 进程间文档说每个进程都应该有自己的命名 mutex?

Posted

技术标签:

【中文标题】为啥名为 mutex 的 boost 进程间文档说每个进程都应该有自己的命名 mutex?【英文标题】:Why do the boost interprocess named mutex docs say each process should have it's own named mutex?为什么名为 mutex 的 boost 进程间文档说每个进程都应该有自己的命名 mutex? 【发布时间】:2017-01-10 15:43:59 【问题描述】:

我正在尝试使用名为 mutex 的 boost 进程间进程,但我对文档中的这一行有点困惑: 具有全局名称的互斥体,因此可以从不同的进程中找到它。这个互斥量不能放在共享内存中,每个进程都应该有自己的named_mutex。

我希望不同的进程使用相同的互斥体,而不是每个进程都有自己的。那条线到底是什么意思?

http://www.boost.org/doc/libs/1_63_0/doc/html/boost/interprocess/named_mutex.html

【问题讨论】:

【参考方案1】:

这似乎措辞不好。它应该是这样的:

...每个进程都应该有自己的named_mutex类实例。

还可以查看named_mutex 示例用法here。您需要向下滚动到“命名互斥锁示例”。

【讨论】:

以上是关于为啥名为 mutex 的 boost 进程间文档说每个进程都应该有自己的命名 mutex?的主要内容,如果未能解决你的问题,请参考以下文章

boost中的异常:进程间,共享内存对象删除

boost::interprocess_mutex 与进程本地 boost::mutex

为啥 boost::mutex 使用原子操作和事件而不是关键部分

为啥我必须为 boost::condition_variable 设置一个 boost::mutex?

boost::named_mutex: 最后一个进程关闭时安全清理

boost::named_mutex: 最后一个进程关闭时安全清理