TMultiReadExclusiveWriteSynchronizer 死锁
TMultiReadExclusiveWriteSynchronizer Deadlock
我在处理涉及多线程、TMultiReadExclusiveWriteSynchronizer
和偶尔出现的死锁的大型项目时遇到了问题。
我的理解是否正确,只有当一个线程不释放锁(EndRead
或 EndWrite
)并且 另一个 线程想要锁定它时才会发生死锁?
我已经用 try finally
打包了我所有的 BeginRead
和 BeginWrite
并且想不出它应该停止的任何原因...... :-(
如果您有两个或更多 TMultiReadExclusiveWriteSynchronizer
,则必须注意如何使用它们。
假设一个线程获得了第一个锁,另一个线程获得了第二个锁。如果每个线程都想获得他还没有的锁,那么你就有了死锁!
我在处理涉及多线程、TMultiReadExclusiveWriteSynchronizer
和偶尔出现的死锁的大型项目时遇到了问题。
我的理解是否正确,只有当一个线程不释放锁(EndRead
或 EndWrite
)并且 另一个 线程想要锁定它时才会发生死锁?
我已经用 try finally
打包了我所有的 BeginRead
和 BeginWrite
并且想不出它应该停止的任何原因...... :-(
如果您有两个或更多 TMultiReadExclusiveWriteSynchronizer
,则必须注意如何使用它们。
假设一个线程获得了第一个锁,另一个线程获得了第二个锁。如果每个线程都想获得他还没有的锁,那么你就有了死锁!