ReaderWriterLock类中的可升级读锁和写锁有什么区别?
根据MSDN的描述,只有一个线程可以进入可升级读锁。如果我遵循正确,我可能会忘记升级它,因为它与写锁相同。
我缺少什么吗?
(我假设你的意思是ReaderWriterLockSlim
,正如我不认为ReaderWriterLock
具有可升级的读取模式。)
虽然只有一个线程可以进入可升级读锁,但一个线程可以拥有可升级读锁而其他线程仍然可以进入读锁:
在任何给定时间只有一个线程可以进入可升级模式。如果线程处于可升级模式,并且没有线程等待进入写入模式,则任意数量的其他线程都可以进入读取模式,即使有线程等待进入可升级模式也是如此。
与写锁进行比较:
当有线程等待进入写入模式时,尝试进入读取模式或可升级模式的其他线程会阻塞,直到所有等待进入写入模式的线程超时或进入写入模式然后退出。
换句话说,写锁是完全排他的,而可升级的读锁将允许其他线程继续进入/退出读模式直到需要升级为止.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)