现在已经有一阵子了学习和愤怒,我来到了一个心理模型,何时使用什么类型的互斥锁使用boost共享内存,看起来像这样:与boost :: interprocess_mutex相比,为什么不在共享内存中使用boost :: mutex?
class IntendedToResideInProcessMemory {
boost::mutex mutex_for_this_process; // 1
boost::interprocess::interprocess_mutex
ok_but_pointless_to_use_interprocess_mutex_here; // 2
}
class IntendedToBeCreatedInSharedMemory {
boost::mutex bad_mutex_at_a_guess_this_will_allocate_something_on_heap;// 3
boost::interprocess::interprocess_mutex
good_for_multiprocess_shared_lock; // 4
}
我希望我的天堂原则上这个错误是错误的,所以请纠正我的错误。我的意图是前进并纠正现有的代码以及不符合此图片的我自己的代码,但我想确定。
这个问题的两个部分: 我认为它确实没问题,但没有意义使用// 2 - 在上下文中,这比// 1更不好,但是原因是什么?性能?
对于// 3,我的猜测是对的吗?有人能够给出技术幕后的原因,为什么它不起作用,或者至少在什么情况下不起作用?