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 是不是需要存储在共享内存中?的主要内容,如果未能解决你的问题,请参考以下文章