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(); 
    }
  • 相关阅读:
    最小生成树算法
    并查集
    背包问题
    木桶排序
    STL之vector
    STL中的queue用法与stack用法对比
    快速幂求模
    归并排序+典型例题(逆序对)
    负进制转换
    冒泡排序
  • 原文地址:https://www.cnblogs.com/bean/p/7678560.html
Copyright © 2011-2022 走看看