Java多线程基本使用(4)

public void run() {
        if (flag) {
            synchronized(MyLock.locka){
                System.out.println("if locka");
                synchronized(MyLock.lockb){
                    System.out.println("if lockb");
                }
            }
        } else {
            synchronized(MyLock.lockb){
                System.out.println("else lockb");
                synchronized(MyLock.locka){
                    System.out.println("else locka");
                }
            }
        }
    }
}

class MyLock{
    static Object locka=new Object();
    static Object lockb=new Object();
}

class DeadLockDemo {
    public static void main(String[] args) {
        Thread t1 = new Thread(new DeadTest(true));
        Thread t2 = new Thread(new DeadTest(false));

t1.start();
        t2.start();
    }
}

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/bbc08f35a2d885c5787b2b5d3a620896.html