# 数据库死锁是怎么产生的
Issue
欢迎在 Gtihub Issue 中回答此问题: Issue 227 (opens new window)
Author
多个事务对资源的交替顺序访问,如
事务 1,访问 A 表,A 表锁住,访问 B 表,此时 B 表却被事务 2 锁住,等待 事务 2,访问 B 表,B 表锁住,访问 A 表,此时 A 表却被事务 1 锁住,等待
由此观之,此死锁出现的条件极为苛刻
- 并发,产生多个事务
- 顺序,对相同资源的不同顺序访问 (干嘛要不同顺序呀)
- 时机,恰好两个事物都刚刚走完了第一步