大佬教程收集整理的这篇文章主要介绍了c# – ReaderWriterLockSlim是正确的选择吗?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我最初的想法是使用Monitor / lock并仅锁定错误写入.这样就完全没有抑制读取.我想知道ReaderWriterLockSlim是否更合适.我不能说我真正理解一种方法与另一种方法之间的价值.
我应该创建一个ReaderWriterLockSlim并执行以下操作(将读取包装在EnterReadLock中)…
public static void LogError(Exception exception) { _lock.EnterWriteLock(); ... _lock.ExitWriteLock(); }
或者我只是执行以下操作,只锁定写入部分:
public static void LogError(Exception exception) { lock (someStaticLock) { ... } }
任何想法/建议将不胜感激.
ReaderWriterLockSlim是使用自旋锁实现的,因此如果你有很长的锁定资源(在这种情况下写文本),由于等待线程的旋转会导致性能更差.也就是说,它是以下情况下非常有用的工具.
>如果你有很多锁,并且每个锁都是更细粒度的(锁定非常小的代码片段),那么ReaderWriterLockSlim或(spinlock).
>预期的线程或争用的数量是高螺旋锁是有意义的,只要锁定是细粒度的.
锁定或监视器最适合您的争用是粗粒度并且您知道争用或锁定数量较少.
ReaderWriterLockSlim至少比ReaderWriterLock快3-5倍.
以上是大佬教程为你收集整理的c# – ReaderWriterLockSlim是正确的选择吗?全部内容,希望文章能够帮你解决c# – ReaderWriterLockSlim是正确的选择吗?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。