【发布时间】:2012-12-28 18:50:23
【问题描述】:
我使用ReaderWriterLockSlim 已经有一段时间了,到目前为止它已经满足了我的需求。当我继续微调我的应用程序时,我发现ReaderWriterLockSlim 对于我的用例来说不是最理想的。
根据文档(以及我的经验),它有利于作者而不是读者(即,当读者和作者排队时,作者将获得优先权)。但是,我需要一个有利于读者的等价物。我了解此类组件的副作用(尤其是作家饥饿问题)。
是否有人可以指出任何可用于生产的等价物?谢谢。
【问题讨论】:
-
永远无法最终证明没有代码。但不,这不太可能。请避免询问购物问题。
-
如果你想支持读取,为什么不直接用更新的克隆替换内部列表呢?您的代码将是无锁的,但更新时会更繁重。
-
是的,听起来您可以像 jgauffin 建议的那样使用副本来解决这个问题,或者如果数据结构对于廉价副本来说太大了,那么使用写入缓冲区可以减少写入频率。然后,您可以通过上下调整刷新缓冲区的时间来调整读/写平衡。
-
请问您在保护什么?我最近删除了我对 ReaderWriterLockSlim 的所有使用,效果非常好。
标签: c# .net multithreading concurrency readerwriterlockslim