[关闭]
@yulongsun 2018-05-14T12:01:38.000000Z 字数 412 阅读 730

死锁

J.U.C专题


  1. 什么是死锁?
    2个或2个以上的进程在执行过程中,因竞争共同资源而造成的一种相互等待的现象。

  2. 产生死锁的原因是?

    1. 系统资源不足
    2. 资源分配不当
    3. 进程推进顺序不合适
  3. 产生死锁的必要条件?

    1. 互斥条件。一个资源每次只能被一个进程使用。
    2. 请求与保持。一个进程因请求资源而阻塞时,对已获得的资源保持不放。
    3. 不剥夺条件。进程已获得资源,在未使用完之前,不能强行剥夺。
    4. 循环等待条件。若干个进程之间形成头尾相连的循环等待资源的关系。
      //
      只要死锁发生,这四个条件必然成立。若破坏其中任何一个,死锁就不会发生。
  4. 解决死锁的方法

    1. 预防死锁
      1.1 资源一次性分配
      1.2 可剥夺资源
      1.3 资源有序分配
    2. 避免死锁
      2.1 银行家算法。
    3. 检测死锁
      3.1 建立资源分配表进程等待表
    4. 解除死锁
      4.1 从其他进程抢夺资源给死锁进程。
      4.2 直接撤销死锁进程。

参考:
1. https://blog.csdn.net/qq_27068845/article/details/78818381

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注