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

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

一、什么是死锁?

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

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

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

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

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

四、死锁的避免与预防:

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

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

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

相关文章
|
2月前
|
监控 算法 安全
|
2月前
|
安全 算法 程序员
|
2月前
|
程序员
|
2月前
|
安全 Java 测试技术
发生死锁怎么办
发生死锁怎么办
43 0
|
2月前
|
SQL 存储 设计模式
如何与死锁斗争!!!
尽量不要改动线上数据库的字段,因为会触发锁表影响业务,严重时还可能出现死锁!数据库真的出现了死锁,业务全挂了,这种时候应该怎么办呢?本文就给大家分享一下数据库死锁的排查思路,万一出了问题,也有底气去解决。
41 1
|
8月前
|
安全 算法
死锁的总结(1)
死锁的总结
18 0
|
8月前
|
算法 安全
死锁的总结(2)
死锁的总结
31 0
|
安全 算法
初识死锁问题
关于对死锁的详解
|
算法 Unix Linux
什么是死锁
什么是死锁
107 0