死锁产生的原因和条件简述

  深入理解死锁产生的原因和条件,对于日后避免死锁的产生有着非常重要的意义。死锁产生的原因主要是竞争资源,其产生的条件包括资源互斥、请求保持、不能剥夺和循环等待。

  死锁产生的根本原因是资源竞争。如果若干个线程正常运行,遇到彼此需要对方占有的资源时,就可能产生线程死锁。如果若干个线程异常运行,资源的请求与释放的顺序不当,也可能产生死锁。

  死锁产生的条件包括以下4点:

    资源互斥:即资源仅能让一个线程使用而不支持多个线程同时使用。

    请求保持:已经拥有资源的线程在请求其他资源时并没有释放当前资源。

    不能剥夺:已经获得的资源在自主释放前不能使用其他手段剥夺。

    循环等待:各个线程对资源的需求构成了一个循环。

通常,破坏循环等待是最有效的解决死锁的方法。

原文地址:https://www.cnblogs.com/luankun0214/p/4419537.html