所以我有一种情况,我可能有很多次读取,并且偶尔会写入多个线程之间共享的资源。
很久以前,我读到了ReaderWriterLock
,并且已经读到了ReaderWriterGate
哪些尝试来缓解许多写入胜过读取并损害性能的问题。然而,现在我已经意识到ReaderWriterLockSlim
...
从文档中,我相信任何时候都只能有一个线程处于“可升级模式”。在我使用的唯一访问权限是EnterUpgradeableReadLock()
(这适合我的场景)的情况下,那么坚持使用有很大的不同lock(){}
吗?
这是摘录:
如果已经有线程处于可升级模式,如果有线程等待进入写入模式,或者如果有单个线程处于写入模式,则尝试进入可升级模式的线程会阻塞。
或者,递归策略对此有何影响?