我在一个大型项目中遇到了麻烦,这些项目涉及多读、TMultiReadExclusiveWriteSynchronizer和偶尔的死锁。我的理解是,只有当一个线程不释放锁(EndRead或EndWrite)而另一个线程想要锁时,死锁才会发生吗?我已经把我所有的BeginRead和BeginWrite都装上了try finally,我想不出它为什么要停下来.:-(
发布于 2021-01-15 14:32:17
如果您有两个或两个以上的TMultiReadExclusiveWriteSynchronizer,您必须注意如何使用这些。
假设一个线程获得了第一个锁,另一个线程获得了第二个锁。如果每个线程都希望获得他尚未拥有的锁,那么您就会有一个死锁!
https://stackoverflow.com/questions/65737491
复制相似问题