产生死锁的四个条件

  • 互斥使用 (只能一个线程使用,例如打印机)
  • 不可强占
  • 占有且等待
  • 循环等待

    解决死锁的方案

    破坏占有且等待,每个请求只能一次性申请,如果不能把这个请求的所有资源都拿到手,那就保持等待
    破坏 不可强占,当一个请求需要请求另一个资源的时候,无法得到这个资源就把当前自身的资源释放出去
    破坏 循环等待, 先申请资源序号大的再申请资源序号小的。

银行家算法-> 预分配 检查是否有安全序列