0
A
回答
2
T1和T2是被完全不同,完全不知道彼此的处理相同,所以它们应该是。
即使T2进程将“升级其在X上的读锁定”,对T1应该发生什么仍然没有任何区别:它仍然应该开始等待,直到X上的T2锁定被释放。
所以我们还是有T1等T2,我们仍然有T2 不必开始在其中T2试图获取Y.
它的锁点等待T1所以我们仍然有两个进程等待为另一个释放一些锁。僵局。
编辑
,如果你在第三部分“锁管理器”,讨论到T1和T2画出也许理解这个问题就简单得多了。此锁定管理器组件经过的状态依次为“无锁”,“Y在T1上读取锁定”,“在Y上读取由T1保持的锁定和在X上由T2保存读取锁定”。
它是后者的位,首先迫使锁管理器进入由T1上X拒绝所述锁定请求,并且后来迫使锁定管理器为否定上Y.
由T2锁定请求前者位相关问题
- 1. 长事务处理的死锁
- 2. 处理死锁
- 3. Python:多处理中单锁的死锁
- 4. mysql事务死锁
- 5. 事务死锁TX
- 6. 事务死锁SqlMembershipProvider.CreateUser()
- 7. 事务死锁和的DbContext
- 8. 用于锁定相同行两次的MySQL 5.6死锁?
- 9. SQL Server 2005:事务死锁
- 10. 清除事务死锁?
- 11. nhibernate事务死锁问题
- 12. 死锁处理在长时间运行的Hibernate事务
- 13. 并发事务中的死锁
- 14. 死锁管理
- 15. 获取对两个互斥锁的锁定并避免死锁
- 16. SqlServer,事务死锁,什么时候表被实际锁定?
- 17. 首次使用EF代码时锁定资源事务死锁
- 18. 在C#中处理线程(死锁)
- 19. PostgreSQL在两个表锁上的死锁
- 20. Postgresql锁死锁
- 21. 死锁的DbContext并发事务
- 22. 死锁使用Spring的事务
- 23. 什么是锁定,财务操作中的死锁问题?
- 24. 在Timer Tick事件中使用“锁定”是否死锁安全?
- 25. Hibernate Java批处理操作死锁
- 26. 死锁与多处理模块
- 27. 异步等待处理程序死锁
- 28. 在死锁后重新提交事务
- 29. MySql:事务不检测死锁?
- 30. 事务(进程ID 72)被锁死