什么是死锁?死锁的必要条件? 如何避免死锁?

发布时间 2023-10-30 11:48:38作者: yuzuzu

1. 什么是死锁?

多进程在竞争资源时,出现了僵死的状态。

 

2.死锁的必要条件?

  1.互斥条件(一个资源每次只能被一个线(进)程使用)(系统特性不能避免)

  2.不可剥夺条件 (线(进)程已获得的资源, 在未使用完之前,不能强行剥夺) (系统特性不可避免)

  3.循环等待 (若干线(进)程之间形成一种头尾衔接的循环等待资源关系)

  4.请求与保持 (一个线(进)程因请求资源而阻塞时,对已获得的资源保持不放)

 

3.如何避免产生死锁?

  1.打破请求与保持---》给锁加顺序;

  2.打破循环等待----》给锁加时效,在时效内没有达到目的则释放资源。