TOmniMREW是否有较少的CPU密集型替代方案?

时间:2013-11-19 11:58:58

标签: multithreading locking omnithreadlibrary

我正在使用一个超薄的单读多写锁,类似于TOmniMREW,但在争用的情况下,这会减少CPU密集度。

TOmniREW仅使用自旋锁,因此线程将飙升至100%的CPU使用率,直到它们获得锁定为止。

目前我正在使用一个关键部分,虽然它的行为效率较低(我的读者多于编写者),但如果争用线程放弃了他们的CPU时间。

在我的情况下偶尔会发生争用,通常是当一个编写器触发一个更复杂(冗长)的操作时,但是当它发生时,自旋锁的CPU使用率一直在飙升。

Windows SRW implementation使用类似的策略并且没有帮助 编辑:实际上它在某些情况下快了2-3倍高争用,但仍然存在问题 编辑2: TOmniMREW将在未来的版本中使用SRW,因此速度将是相同的。)

2 个答案:

答案 0 :(得分:1)

实际上经过更多测试后,似乎Windows SRW确实放弃了CPU,它只需要比我在关键部分测试中看到的要多一些时间。

所以Windows SRW就是答案。

答案 1 :(得分:0)

您是否阅读过这篇文章:Slim Reader/Writer Locks Rocks? 它还包含对几个备选方案的简单基准项目的引用