boost::interprocess::named_mutex 是不是需要存储在共享内存中?

Posted

技术标签:

【中文标题】boost::interprocess::named_mutex 是不是需要存储在共享内存中?【英文标题】:Does boost::interprocess::named_mutex need to be stored in shared memory?boost::interprocess::named_mutex 是否需要存储在共享内存中? 【发布时间】:2011-08-25 13:10:30 【问题描述】:

我想使用boost::interprocess 来执行跨多个进程的同步;具体我想在Linux OS下使用boost::interprocessnamed_mutex(我使用的是g++)。

你知道这个类的每个实例是否必须像简单的boost::interprocess::mutex一样存储在共享内存中吗?

【问题讨论】:

【参考方案1】:

你知道这个类的每个实例是否必须像简单的 boost::interprocess::mutex 一样存储在共享内存中吗?

“命名”对象不必位于共享内存中。请参阅 Boost.Interprocess 文档中的 example。

【讨论】:

谢谢西蒙!附带问题(如果你有时间)基本上如果我想拥有一个 named_mutex 的多个实例,我需要提供不同的名称,对吧?如果多个 named_mutex WITHING 同一个进程使用相同的名称,那么它们指的是同一个对象并且它们将被同步......我正确吗?注意:我的问题是正确的,因为我在“未命名互斥锁”示例中看到了该示例,而该示例可以从共享内存中访问。 是的,如果使用不同的命名互斥锁,您必须将其命名为不同的。命名互斥锁不仅在同一个进程中,而且在操作系统的不同进程中也是一样的!

以上是关于boost::interprocess::named_mutex 是不是需要存储在共享内存中?的主要内容,如果未能解决你的问题,请参考以下文章