# 数据库死锁是怎么产生的

Issue

欢迎在 Issue 中交流与讨论: Issue 227 (opens new window)

多个事务对资源的交替顺序访问,如

事务1,访问A表,A表锁住,访问B表,此时B表却被事务2锁住,等待 事务2,访问B表,B表锁住,访问A表,此时A表却被事务1锁住,等待

由此观之,此死锁出现的条件极为苛刻

  1. 并发,产生多个事务
  2. 顺序,对相同资源的不同顺序访问 (干嘛要不同顺序呀)
  3. 时机,恰好两个事物都刚刚走完了第一步

更多示例 (opens new window)

Last Updated: 1/17/2021, 2:02:56 PM