zoukankan      html  css  js  c++  java
  • 多线程产生死锁

    因为线程可以阻塞,并且具有同步控制机制可以防止其他线程在锁还没有释放的情况下访问这个对象,这时就产生了矛盾,比如:线程A在等待线程B,而线程B又在等待线程A,这样就造成了死锁。
    一般造成死锁必须同时满足如下4个条件:
    互斥条件:线程使用的资源必须至少有一个是不能共享的;
    请求与保持条件:至少有一个线程必须持有一个资源并且正在等待获取一个当前被其他线程持有的资源;
    非剥夺条件:分配的资源不能从相应的线程中被强制剥夺;
    循环等待条件:第一个线程等待其他线程,后者又在等待第一个线程序。
    因为要发生死锁,这4个条件必须同时满足,所以要防止死锁的话,只需要破坏其中一个条件即可。

  • 相关阅读:
    JSON
    css3之自定义字体
    css3之2D转换
    JavaScript---认识JavaScipt
    学JS必看-JavaScript数据结构深度剖析
    Vue 过渡
    Vue 表单控件绑定
    Vue 方法与事件处理器
    Vue 列表渲染
    Vue 条件渲染
  • 原文地址:https://www.cnblogs.com/lkwkk/p/14206424.html
Copyright © 2011-2022 走看看