【数据库面试题05】什么是死锁?

当两个事务互相之间需要等待对方释放资源(释放锁)时,如果系统不进行干预则会一致等待下去,也就是进入了死锁(deadlock)状态。

死锁的4个必要条件:

  • 互斥条件:一个资源(锁),在同一瞬间只能被一个事务拥有。
  • 请求与保持条件:事务在请求别的锁的同时需要保持原本已经获得的锁。
  • 不剥夺条件:系统不会自动剥夺事务的锁。
  • 环路等待条件:等待状态需要形成一个环路,例如事务1等待事务2,事务2等待事务3……事务x等待事务1。

想要避免死锁,则可以从破坏以上四个必要条件入手

版权声明:
作者:jackqiang
链接:http://www.jackqiang.com/interview/interview-db/1986/deadlock/
来源:JackQiang's
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录