多线程面试指南:预防死锁策略详解.pdfVIP

  • 3
  • 0
  • 约小于1千字
  • 约 1页
  • 2026-06-16 发布于北京
  • 举报

多线程面试指南:预防死锁策略详解.pdf

如何预防死锁

首先举个例子说明什么是死锁,比如,一个十字路口,东西南北四个方向分别有四列车ABCD,A在东向

被D堵着,D北被B堵着,B在西被C堵着,C在南被A堵着,这就造成了十字路口的堵死,也就是所谓的

死锁。

具体图示如下:

那么如何预防死锁?

1.死锁发生的四个必要条件:

1.互斥条件同一时间只能有一个线程获取资源。

2.不可条件一个线程已经占有的资源,在释放之前不会被其它线程抢占

3.请求和保持条件线程等待过程中不会释放已占有的资源

4.循环等待条件多个线程互相等待对方释放资源

2.死锁预防,那么就是需要破坏这四个必要条件

1.由于资源互斥是资源使用的固有特性,无法改变,我们不讨论

2.破坏不可条件

1.一个进程不能获得所需要的全部资源时便处于等待状态,等待期间他占有的资源将被隐

式的释放重新加入到系统的资源列表中,可以被其他的进程使用,而等待的进程只有重

新获得自己原有的资源以及新申请的资源才可以重新启动,执行

3.破坏请求与保持条件

1.第法静态分配即每个进程在开始执行时就申请他所需要的全部资

文档评论(0)

1亿VIP精品文档

相关文档