提纲:

🔥死锁

  • 概念

  • 必要条件

  • 解决策略

  • 活锁

一、死锁

1. 概念

  • 两个或多个并发的进程彼此占用了对方继续执行需要获取的资源,导致任意一个都无法继续执行

2.必要条件

  • 1、互斥:进程互相占用的资源必须是互斥的,即需要等待对方释放才能获取

  • 2、占有并保持:进程尝试获取下一个资源时,不会释放已有资源

  • 3、非抢占:只能由进程执行完才能释放资源

  • 4、 循环等待:若干进程间的互相占用形成一个环,即 A -> B -> C -> A

3.解决策略

  • 1、死锁预防:死锁的四个条件只要有一个不成立,就无法形成死锁

    • 破坏互斥条件问题:无法实现对共享资源操作的同步,无实用价值

    • 破坏占有并保持条件:可以进行资源的预分配,即在程序开始运行前就分配好所有资源问题:部分情况下,程序是在运行过程中动态获取资