首页 > 编程知识 正文

mysql死锁日志,mysql数据库查看死锁

时间:2023-05-05 13:30:32 阅读:176860 作者:2046

死锁引起的4个必要条件

排他条件:资源以独占方式使用。 进程独占地使用资源。 这意味着在任意时刻,一个资源只能用于一个进程。 如果其他进程申请一个资源,并且该资源被另一个进程占用,申请人将等待,直到资源被占用者释放。 (推荐学习资源: MySQL视频教程)

不可剥夺条件:流程获得的资源在未使用之前,不会被其他流程强制夺走,而只有通过获得该资源的流程资源才能释放。

要求和维持条件:流程每次申请都要求一部分必要的资源,在申请新资源的同时,继续占用分配的资源。

循环待机条件(发生死锁的情况下,必定存在进程待机队列) P1、P2、…、Pn )。 其中,P1等待P2占用的资源,P2等待P3占用的资源.Pn等待P1占用的资源,形成一个进程待机循环,循环内各进程占用的资源同时被另一个申请占用。 也就是说,前一个进程占用下一个进程的深层资源。

虽然以上给出了引起死锁的4个必要条件,但是只要系统不引起死锁,这4个条件中的至少一个就成立。 实际上,循环等待的成立包括前三个条件的成立,似乎没有必要列举这些条件,但考虑这些条件有利于预防死锁。 这是因为通过破坏4个条件中的任意一个就可以预防死锁的发生。

死锁预防

可以通过破坏死锁产生的4个必要条件来预防死锁。 资源互斥是资源使用的固有特性,不能更改。

打破“不可剥夺”条件:如果一个进程不能获得所有必需的资源,它将处于等待状态。 等待期间,他占用的资源将被隐式释放并重新添加到系统资源列表中,以供其他进程使用。 只有重新获得自己的原始资源和新申请的资源时,等待的进程才能重新启动并运行。

破坏请求和保留:第一种方法是静态分配,其中每个进程在开始运行时请求所有必需的资源。 二是动态分配。 这意味着,每个进程在申请所需资源时都不占用系统资源。

打破“循环”条件:按顺序分配资源的基本思想是对系统中的所有资源按顺序编号,缺的少的按大编号,申请资源时按顺序进行,一个过程是获取小编号的过程

有关MySQL相关技术文章的详细信息,请参见MySQL教程一栏。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。