死锁模拟(JAVA)

死锁模拟(JAVA)


/**
 * Created by double on 2019/7/29.
 */
public class DeadLockDemo {
    private final Object lock1 = new Object();
    private final Object lock2 = new Object();

    void method1() {
        synchronized (lock1) {
            try {
                Thread.sleep(3000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            synchronized (lock2) {
                System.out.println(1);
            }
        }
    }


    void method2() {
        synchronized (lock2) {
            synchronized (lock1) {
                System.out.println(2);
            }
        }
    }

    public static void main(String[] args) {
        DeadLockDemo deadLockDemo = new DeadLockDemo();

        new Thread(new Runnable() {
            @Override
            public void run() {
                deadLockDemo.method1();
            }
        }).start();

        new Thread(new Runnable() {
            @Override
            public void run() {
                deadLockDemo.method2();
            }
        }).start();
    }
}

发布了30 篇原创文章 · 获赞 7 · 访问量 3891

猜你喜欢

转载自blog.csdn.net/huchao_lingo/article/details/104795707