请注意,我可以在boost源代码中进行研究,如果没有人有答案,可以这样做来回答我自己的好奇心。boost :: interprocess_mutex vs Win32 native mutexes的性能如何?
但是我这么问,因为也许有人已经做了这个比较,并且可以权威地回答?
这似乎是建立进程之间共享的存储器映射的文件,并通过施工与InterlockedIncrement()
一个可以创建一个用户模式很大程度上互斥类似于一个CRITICAL_SECTION
,这将是相当比的Win32互斥用于进程间同步更好的性能。
所以我的期望是,可能在boost::interprocess_mutex
的Win32上的实现已经以这种方式实现,并且它比本地API产品快得多。
我只是有个假设,我不知道通过现场测试boost::interprocess_mutex
的性能是用于进程间同步还是深入研究它的实现。
有没有人有使用它或分析其相对性能的经验,还是他们可以评论使用InterlockedIncrement()跨使用共享内存的进程的安全性?
如果我理解你的问题,你似乎要求的是比mutex更有效的关键部分(答案是肯定的)。如果我误解了,请重新提出您的问题。 – 2009-07-22 16:01:34
无法在两个进程之间的共享内存中创建临界区,所以它不是进程间同步的候选机制。 – 2009-07-22 16:14:16
@尼尔 - 在船上留下了你的评论。 – 2009-07-22 16:18:39