0
我想用boost::interprocess
跨多个进程执行同步;在具体的我想在Linux操作系统下使用boost::interprocessnamed_mutex
(我正在使用g ++)。boost :: interprocess :: named_mutex是否需要存储在共享内存中?
您是否知道该类的每个实例是否必须存储在共享内存中,如简单的boost::interprocess::mutex
?
我想用boost::interprocess
跨多个进程执行同步;在具体的我想在Linux操作系统下使用boost::interprocessnamed_mutex
(我正在使用g ++)。boost :: interprocess :: named_mutex是否需要存储在共享内存中?
您是否知道该类的每个实例是否必须存储在共享内存中,如简单的boost::interprocess::mutex
?
你知道这个类的每个实例是否必须存储在共享内存中,比如简单的boost :: interprocess :: mutex?
“命名”对象不必在共享内存中。请参阅Boost.Interprocess文档中的example。
谢谢Simon!侧面的问题(如果你有时间)基本上,如果我想有一个named_mutex的多个实例,我需要提供不同的名称,对吧?如果多个named_mutex在同一个进程中使用相同的名称,那么它们指的是同一个对象,它们将被同步......我是否正确? 注:我的问题出现了,因为我看到了这个例子,而在'无名互斥'实例的例子中可以从共享内存访问。 –
是的,如果使用不同的命名互斥体,则必须命名它不同。命名互斥体不仅具有相同的过程,而且在OS的不同过程中也是一样的! – Simon