• 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();
        }
    
       }
      }
    }
  • 相关阅读:
    2.安装双系统linux+windows
    1.在虚拟机上安装linux系统
    python2升级python3(linux)并解决兼容问题
    selenium模拟登录_百度指数
    解决YUM下LoadedpluginsfastestmirrorDeterminingfastestmirrors 的问题
    yum源地址卸载、下载、安装
    Redis无法启动You may fix this problem by either reducing the size of the Redis heap with the --maxheap
    第二章 演化式架构师
    第一章 微服务
    第19章 未来的软件构架
  • 原文地址:https://www.cnblogs.com/arbitrary/p/5283035.html
Copyright © 2020-2023  润新知