System.Threading.ReaderWriterLockSlim

System.Threading.ReaderWriterLockSlim

这句话是真是假?

It is optimized for usage where writes from multiple sources are common

ReaderWriterLockSlim 允许线程锁定读或写,并且只有一个锁。但是关于许多线程——是否允许 2 个线程锁定自身?我很困惑...

Reader/writer 锁,无论是瘦锁还是胖锁,都针对有多个读者但写者很少的情况进行了优化。

两种锁类型都允许多个读者同时访问资源,但只允许一个作者。如果一个writer请求访问,它会一直排队,直到当前所有reader都退出,这个过程中不允许新的reader进入,然后一个writer线程独占访问,直到它再次释放它的writer锁。

slim 和 normal 的主要区别是后者更新,对于大多数常见场景具有更好的性能特征。