【发布时间】:2013-02-11 11:56:38
【问题描述】:
关于ReaderWriterLockSlim:
随后在同一个线程中获取两个锁实际上应该抛出LockRecursionException(递归策略设置为NoRecursion)。
我的观察结果:
-
reader 锁,然后 reader 锁 -->
LockRecursionException -
reader 锁,然后 upgradeable reader 锁 -->
LockRecursionException -
reader 锁,然后 writer 锁 -->
LockRecursionException - 可升级读卡器锁,然后读卡器锁 --> 无异常
-
可升级读卡器锁,然后是可升级读卡器锁 -->
LockRecursionException - 可升级阅读器锁,然后写入器锁 --> 无异常
-
writer 锁,然后 reader 锁 -->
LockRecursionException -
writer 锁,然后 upgradeable reader 锁 -->
LockRecursionException -
writer 锁,然后 writer 锁 -->
LockRecursionException
这种行为正确吗?
【问题讨论】:
标签: .net multithreading concurrency synchronization