美文网首页
多线程之_死锁

多线程之_死锁

作者: 让你变好的过程从来都不会很舒服 | 来源:发表于2021-08-06 14:04 被阅读0次

基本介绍

多个线程都占用了对方的锁资源、但不肯想让、导致了死锁、再编程上一定要避免死锁的发生。

死锁demo

public class DeadLock {
    public static void main(String[] args) {
        // 模拟死锁
        DeadLockDemo deadLockDemo1 = new DeadLockDemo(true);
        DeadLockDemo deadLockDemo2 = new DeadLockDemo(false);
        deadLockDemo1.start();
        deadLockDemo2.start();
    }
}

class DeadLockDemo extends Thread{

    static Object o1 = new Object();
    static Object o2 = new Object();
    boolean flag;

    public DeadLockDemo(Boolean flag){
        this.flag=flag;
    }

    @Override
    public void run() {
        if(flag){
            synchronized (o1){
                System.out.println(Thread.currentThread().getName()+"进入1");
                synchronized (o2){
                    System.out.println(Thread.currentThread().getName()+"进入2");
                }
            }
        }else {
            synchronized (o2){
                System.out.println(Thread.currentThread().getName()+"进入3");
                synchronized (o1){
                    System.out.println(Thread.currentThread().getName()+"进入4");
                }
            }
        }
    }
}

结果

相关文章

网友评论

      本文标题:多线程之_死锁

      本文链接:https://www.haomeiwen.com/subject/zcwrvltx.html