zoukankan      html  css  js  c++  java
  • 死锁产生的原因和条件简述

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

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

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

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

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

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

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

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

  • 相关阅读:
    elemenui数据表格加入计数器和输入框
    递归求阶乘
    递归累和
    递归
    file类
    Object类
    首页背景图
    异常的处理
    数据结构有什么用?常见的数据结构有什么?
    线程、并发、并行、进程是什么,以及如何开启新的线程?
  • 原文地址:https://www.cnblogs.com/luankun0214/p/4419537.html
Copyright © 2011-2022 走看看