您的位置:首页 > 娱乐 > 明星 > 2024了,还有人在问为甚死锁?

2024了,还有人在问为甚死锁?

2024/10/6 20:39:49 来源:https://blog.csdn.net/qq_40374604/article/details/139306363  浏览:    关键词:2024了,还有人在问为甚死锁?

大家好,我是javapub。

接上篇提到了锁,《InnoDB有哪些锁类型》。这么多的锁,你有遇到过死锁吗?

死锁是在事务数据库中会发生的一种特殊现象,多个事务在执行过程中,相互等待对方持有的资源,导致这些事务都无法继续执行。简单来说,就是两个或多个事务陷入了一个循环等待的状态,每个事务都在等待其他事务释放资源。

比如这个蛇和青蛙互不放手。

来源网络-互不放手

死锁通常由以下四种情况同时出现时引起:

  1. 互斥条件(Mutual Exclusion):
    • 指某些资源(如数据库中的记录)一次只能被一个事务占用。
  2. 持有和等待条件(Hold and Wait):
    • 指一个事务至少持有一个资源,并在等待获取其他事务持有的资源。
  3. 不可剥夺条件(No Preemption):
    • 指已经分配给一个事务的资源,在事务使用完毕之前,不能被强行剥夺。
  4. 循环等待条件(Circular Wait):
    • 指事务之间形成了一个闭环,每个事务都在等待下一个事务所持有的资源。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com