什么是死锁?产生死锁的原因?产生死锁的四个必要条件?死锁的避免与预防?

简介: 什么是死锁?产生死锁的原因?产生死锁的四个必要条件?死锁的避免与预防?

一、什么是死锁?

当两个或两个以上的进程同时执行时,因为竞争一个资源或彼此通信时产生的一种阻塞现象,如果没有外力的情况下,他们将一直处于互相等待的状态,不能继续推进下去,这种情况称为死锁。

二、产生死锁的原因:(两个)

1. 对共享资源的竞争          2. 进程推进顺序不当

三、产生死锁的四个必要条件:(四个条件中任意一个条件不满足都不会产生死锁)

1. 互斥条件   2. 请求与保持条件    3. 不可剥夺条件    4. 循环等待条件

四、死锁的避免与预防:

死锁避免的基本思想:系统会将进程发出的每一个满足资源申请的系统进行检查,根据检查的结果判断是否会产生死锁,会的话就不分配资源,不会产生死锁就分配资源。

我们可以通过产生死锁的四个原因进行避免、预防和解决死锁。只要打破四个条件中的任意一个条件就可以。

1. 打破互斥条件    2. 打破请求与保持条件    3. 打破不可剥夺条件   4. 打破循环等待条件

相关文章
|
7月前
|
监控 算法 安全
|
28天前
|
算法
死锁的必要条件
互斥条件:同一资源同时只能由一个线程读取 不可抢占条件:不能强行剥夺线程占有的资源 请求和保持条件:请求其他资源的同时对自己手中的资源保持不放 循环等待条件:在相互等待资源的过程中,形成一个闭环 想要预防死锁,只需要破坏其中一个条件即可,银行家算法可以预防死锁
|
7月前
|
SQL 存储 设计模式
如何与死锁斗争!!!
尽量不要改动线上数据库的字段,因为会触发锁表影响业务,严重时还可能出现死锁!数据库真的出现了死锁,业务全挂了,这种时候应该怎么办呢?本文就给大家分享一下数据库死锁的排查思路,万一出了问题,也有底气去解决。
64 1
|
7月前
|
安全 Java 测试技术
发生死锁怎么办
发生死锁怎么办
67 0
|
7月前
死锁的发生与避免
死锁的发生与避免 死锁是指两个或者多个进程在执行过程中,因争夺资源而造成的一种僵局,若无外力作用,它们都将无法推进下去。在计算机系统中,死锁是一种常见的问题,因此需要采取一些措施来避免死锁的发生。
|
算法 安全
死锁的总结(2)
死锁的总结
52 0
|
安全 算法
死锁的总结(1)
死锁的总结
36 0
|
算法 调度
死锁的理解
死锁的理解
86 0
|
程序员 Linux 芯片

热门文章

最新文章

相关实验场景

更多