关于ReaderWriterLockSlim
:
随后在同一个线程中获取两个锁实际上应该抛出一个LockRecursionException
(递归策略设置为NoRecursion
)。
我的观察结果:
- 读卡器,然后读卡器-->
LockRecursionException
- 读卡器,然后是可升级读卡器-->
LockRecursionException
- 读锁,然后写锁 -->
LockRecursionException
- 可升级读卡器锁,然后是读卡器锁 -->没有例外
- 可升级读卡器锁,然后可升级读卡器锁 -->
LockRecursionException
- 可升级阅读器锁,然后是编写器锁->没有例外
- 写锁,然后读锁 -->
LockRecursionException
- writer lock,然后是可升级的 reader lock -->
LockRecursionException
- 写锁,然后写锁 -->
LockRecursionException
这种行为正确吗?