死锁出现的四种原因及避免方法

1.互斥条件 :该资源任意⼀个时刻只由⼀个线程占⽤。

避免方法:这个条件我们没有办法破坏,因为我们⽤锁本来就是想让他们互斥的(临界 资源需要互斥访问)。

 

2. 请求与保持条件 :⼀个进程因请求资源⽽阻塞时,对已获得的资源保持不放。

避免方法:⼀次性申请所有的资源。

 

3. 不剥夺条件 :线程已获得的资源在末使⽤完之前不能被其他线程强⾏剥夺,只有⾃⼰使⽤完 毕后才释放资源。

避免方法:占⽤部分资源的线程进⼀步申请其他资源时,如果申请不到,可以主动释 放它占有的资源。

 

4. 循环等待条件 :若⼲进程之间形成⼀种头尾相接的循环等待资源关系。

避免方法:靠按序申请资源来预防。按某⼀顺序申请资源,释放资源则反序释放。 

posted @ 2022-08-12 21:36  小小程序猿😜  阅读(82)  评论(0编辑  收藏  举报