提纲:
🔥死锁
概念
必要条件
解决策略
活锁
一、死锁
1. 概念
-
两个或多个并发的进程彼此占用了对方继续执行需要获取的资源,导致任意一个都无法继续执行
2.必要条件
-
1、互斥:进程互相占用的资源必须是互斥的,即需要等待对方释放才能获取
-
2、占有并保持:进程尝试获取下一个资源时,不会释放已有资源
-
3、非抢占:只能由进程执行完才能释放资源
-
4、 循环等待:若干进程间的互相占用形成一个环,即 A -> B -> C -> A
3.解决策略
-
1、死锁预防:死锁的四个条件只要有一个不成立,就无法形成死锁
-
破坏互斥条件问题:无法实现对共享资源操作的同步,无实用价值
-
破坏占有并保持条件:可以进行资源的预分配,即在程序开始运行前就分配好所有资源问题:部分情况下,程序是在运行过程中动态获取资
-