多线程-死锁

版权声明:歡迎转載 https://blog.csdn.net/jinjianghai/article/details/90409049
package com.xbb.thread;

public class DeadLock {

    Object obj1 = new Object();
    Object obj2 = new Object();

    public void funOne() throws Exception{
        synchronized (obj1){
            Thread.sleep(10);
            synchronized (obj2){
                System.out.println("fun_1");
            }
        }
    }
    public void funTwo() throws Exception{
        synchronized (obj2){
            Thread.sleep(10);
            synchronized (obj1){
                System.out.println("fun_2");
            }
        }
    }

    public static void main(String[] args)throws Exception {
        DeadLock deadLock = new DeadLock();
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    deadLock.funOne();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }).start();
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    deadLock.funTwo();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }).start();
    }
}

猜你喜欢

转载自blog.csdn.net/jinjianghai/article/details/90409049
今日推荐