zoukankan      html  css  js  c++  java
  • java线程(3)-多线程死锁

    产生死锁的条件:

    1.有至少一个资源不能共享
    2.至少有一个任务必须持有一个资源并且等待获取另一个被别的任务持有的资源
    3.资源不能任务抢占
    4.必须有循环等待

    package com.thread;
    /**
    * 死锁简单示例
    * 死锁的原因是由于 两个线程相互等待 对方已被锁定的资源
    * @author YangBaoBao
    *
    */
    public class DeadLock {
    
    /**
    * @param args
    */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
      Object obj=new Object();
      Object obj1=new Object();
      DeadLockThread diedLock=new DeadLockThread(obj,obj1);
      DeadLockThread1 diedLock1=new DeadLockThread1(obj,obj1);
      diedLock.start();
      diedLock1.start();
    }
    
    }
    class DeadLockThread extends Thread
    {
      private Object obj;
      private Object obj1;
      public DeadLockThread(Object obj,Object obj1)
      {
        this.obj=obj;
        this.obj1=obj1;
        }
      @Override
      public void run() {
        synchronized (obj) {
          try {
            Thread.sleep(100);
            synchronized (obj1) {    
              obj1.getClass();
            }
          } catch (InterruptedException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
          }
        }
      }
    }
    class DeadLockThread1 extends Thread
    {
        private Object obj;
        private Object obj1;
        public DeadLockThread1(Object obj,Object obj1)
        {
            this.obj=obj;
            this.obj1=obj1;
        }
        @Override
        public void run() {
        synchronized (obj1) {
        try {
          Thread.sleep(100);
          synchronized (obj) {    
          obj.getClass();
          }
        } catch (InterruptedException e) {
          e.printStackTrace();
        }
    
       }
      }
    }
  • 相关阅读:
    SAP Hybris使用recipe进行安装时,是如何执行ant命令的?
    实时电商数仓(三)之数据采集(二)搭建日志采集系统的集群(二)建立父工程
    实时电商数仓(一)之系统架构
    gdb 条件断点 + 多线程 +attach
    dpdk tx_pkt_burst rte_pktmbuf_free mbuf释放
    dpdk 网卡初始化 —— 收包
    dpdk 版本变动修改
    rte_mempool_get_priv
    mempool + ring test
    dpdk mempool debug
  • 原文地址:https://www.cnblogs.com/arbitrary/p/5283035.html
Copyright © 2011-2022 走看看