我们有针对.NET 2.0RTM的项目(是的,它应该是.NET 2.0RTM,我们有一些正统的客户端)。我想知道ReaderWriterLock的缺点是什么?为什么每个人都告诉“不要使用它,试着使用其他东西,比如lock语句”,这是多么糟糕呢?如果我们可以使用.NET 3.5,我肯定会使用ReaderWriterLockSlim,但对于ReaderWriterLock,我有点害怕所有这些来自各地的警告。有没有人测量过性能或者别的什么?如果有一些性能问题,我们可以在什么负载下遇到它们?
就ReaderWriterLock的主要用途而言,我们有一个典型的情况,即多次读取,很少写入。使用lock语句将阻塞所有读取器。也许这对我们来说不是一个可怕的问题,但如果我能使用ReaderWriterLock,我会更满意。引入几个监视器确实是一个非常非常糟糕的想法。
发布于 2011-04-12 12:13:35
下面的几篇文章可以为你提供你正在寻找的想法。
Performance Comparison of ReaderWriterLockSlim with ReaderWriterLock
Rico Mariani on Using ReaderWriterLock part这篇文章解释了使用ReaderWriterLock的一些成本和场景,还可以查看part 1和part 2
Jeffrey Richter on an alternative to ReaderWriterLock
发布于 2011-04-12 12:17:10
如果您真的面临ReaderWriterLock的理想用例(即多个并发读取和很少的写入),那么使用它!
如果你发现它太慢了,还有其他选择。Sanjeevakumar在他的回答中提供了一些链接。我也会在我的文章中提供一个:
Low-Lock Techniques in action: Implementing a Reader-Writer lock
我将在这里引用该链接的要点:
https://stackoverflow.com/questions/5630224
复制相似问题