我们有针对.NET 2.0 RTM的项目(是的,应该是.NET 2.0 RTM,我们有一些正统的客户端)。我只是想知道ReaderWriterLock的缺点是什么?为什么每个人都说“不要使用它,请尝试使用lock语句之类的东西”,这是如此糟糕?如果我们可以使用.NET 3.5,那么我肯定会使用ReaderWriterLockSlim,但是对于ReaderWriterLock,所有这些警告来自世界各地,我有点吓到。有人衡量过绩效吗?如果存在一些性能问题,那么在什么有效载荷下我们会遇到这些问题?

ReaderWriterLock主要用途而言,我们处于典型情况,即多次读取而很少写入。使用lock语句将阻止所有读者。也许这对我们来说不是一个可怕的问题,但是如果我可以使用ReaderWriterLock,我会感到更加满意。 IMO引入多台监视器确实是一个非常非常糟糕的主意。

最佳答案

以下几篇文章可以为您提供所需的想法。

Performance Comparison of ReaderWriterLockSlim with ReaderWriterLock

Rico Mariani on Using ReaderWriterLock part这篇文章解释了使用ReaderWriterLock的一些成本和方案,还检查了part 1part 2

Jeffrey Richter on an alternative to ReaderWriterLock

10-07 23:53