zoukankan      html  css  js  c++  java
  • 死锁

    package demo.thread;
    
    public class DeadLock {
       public static void main(String[] args) {
        Test a = new Test(true);
        Test b = new Test(false);
        Thread t1 = new Thread(a);
        Thread t2 = new Thread(b);
        t1.start();
        t2.start();
    }
    }
    
    
    class Test implements Runnable{
        private boolean flag;
        Test(boolean flag) {
            this.flag = flag;
        }
        @Override
        public void run() {
             if(flag) {
                 while(true) {
                 synchronized (MyLock.lockA) {
                       System.out.println("if LockA");
                     synchronized (MyLock.lockB) {
                        System.out.println("if LockB");
                    }
                }
                 }
             } else {
                 while(true) {
                 synchronized (MyLock.lockB) {
                     System.out.println("else LockB");
                        synchronized (MyLock.lockA) {
                             System.out.println("else LockA");
                        }
                    }
                 }
             }        
        }
    }
    
    class MyLock {
        public static final Object lockA = new Object();
        public static final Object lockB = new Object(); 
    }
  • 相关阅读:
    单一职责原则
    算法的设计与分析 -----图 (1)
    交换机
    子网掩码
    IP地址分类+网络号
    网络参考模型与5G协议
    什么是5G
    RxJAVA
    EventBus3.0的学习
    ButterKnife+Zelezny插件
  • 原文地址:https://www.cnblogs.com/bean/p/7678560.html
Copyright © 2011-2022 走看看