[英]C# complex thread synchronization
我有相当复杂的线程同步情况。 我有一个从不同的线程访问的集合。 一个线程,我们将其命名为“控制线程”,更新集合。 其他线程读取集合('读取线程')。 我想要实现的逻辑如下:
我应该使用什么线程同步技术?
只需看看ReaderWriterLock
类,它定义了一个支持单个编写器和多个读取器的锁,或者你可以使用ReaderWriterLockSlim
(在.Net 4.0中支持),如果你正在开始一个新的开发,它会更方便(例如它避免了很多潜在的情况)僵局)
来自MSDN :
ReaderWriterLockSlim类似于ReaderWriterLock,但它简化了递归规则以及升级和降级锁定状态的规则。 ReaderWriterLockSlim避免了许多潜在的死锁案例。 此外,ReaderWriterLockSlim的性能明显优于ReaderWriterLock。 ReaderWriterLockSlim推荐用于所有新开发。*
表示用于管理对资源的访问的锁,允许多个线程进行读取或独占访问以进行写入。
使用ReaderWriterLockSlim来保护由多个线程读取并由一个线程一次写入的资源。 ReaderWriterLockSlim允许多个线程处于读取模式,允许一个线程处于具有锁独占所有权的写模式,并允许一个具有读访问权限的线程处于可升级读模式,线程可以从该模式升级到写模式必须放弃对资源的读访问权。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.