【发布时间】:2009-07-22 15:55:28
【问题描述】:
请注意,我可以在 boost 源代码中进行研究,如果没有人提供答案,我可能会这样做来回答我自己的好奇心。
我确实问了,因为也许有人已经做过这个比较并且可以权威地回答?
似乎在进程之间创建共享内存映射文件,并通过使用InterlockedIncrement() 进行构造,可以创建类似于CRITICAL_SECTION 的主要用户模式互斥锁,这将比用于进程间同步的Win32 Mutex 性能要高得多.
所以我的期望是,boost::interprocess_mutex 的 Win32 上的实现可能会以这种方式实现,并且比原生 API 提供的速度要快得多。
不过我只有一个假设,通过现场测试不知道boost::interprocess_mutex的进程间同步性能如何,或者深入研究了它的实现。
是否有人在使用它或分析其相对性能方面有经验,或者他们可以评论在使用共享内存的进程之间使用 InterlockedIncrement() 的安全性吗?
【问题讨论】:
-
如果我理解你的问题,你似乎在问关键部分比互斥锁更有效(答案是肯定的)。如果我理解有误,请改写您的问题。
-
不能在两个进程之间的共享内存中创建临界区,因此它不是进程间同步的候选机制。
-
@Neil - 带上你的 cmets。
标签: c++ windows winapi boost synchronization