美文网首页
Java 死锁代码

Java 死锁代码

作者: 杰哥长得帅 | 来源:发表于2018-03-17 10:27 被阅读15次
class DealThread implements Runnable {

    public String username;
    public Object lock1 = new Object();
    public Object lock2 = new Object();

    public void setFlag(String username) {
        this.username = username;
    }

    @Override
    public void run() {
        if (username.equals("a")) {
            synchronized (lock1) {
                try {
                    System.out.println("username = " + username);
                    Thread.sleep(3000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                synchronized (lock2) {
                    System.out.println("按lock1->lock2代码顺序执行了");
                }
            }
        }
        if (username.equals("b")) {
            synchronized (lock2) {
                try {
                    System.out.println("username = " + username);
                    Thread.sleep(3000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                synchronized (lock1) {
                    System.out.println("按lock2->lock1代码顺序执行了");
                }
            }
        }
    }

}

class Run {
    public static void main(String[] args) {
        try {
            DealThread t1 = new DealThread();

            t1.setFlag("a");
            Thread thread1 = new Thread(t1);
            thread1.start();

            Thread.sleep(100);

            t1.setFlag("b");
            Thread thread2 = new Thread(t1);
            thread2.start();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

username = a
username = b

相关文章

  • java笔记——通过例子理解死锁的定义

    通过例子理解死锁的定义 代码:Deadlock.java DeadlockTest.java (2)代码:Dead...

  • JVM_JMM: 死锁的检测

    死锁的示例代码: 通过jconsole来检测死锁: 名称: Thread-1状态: java.lang.Class...

  • Java 死锁代码

    username = ausername = b

  • Java死锁的简单例子

    Java死锁的简单例子 两个线程互相占有对方需要的资源而不释放,便形成了死锁。 代码如下:Program.java...

  • 多线程分析——死锁代码demo

    前言 本文主要是对Java多线程死锁代码demo的分析,对其过程以及死锁进行了大致的概括,希望对大家有帮助。 死锁...

  • 写一个 java 死锁玩玩

    java 死锁很容易遇到,睡不着 写一个 死锁上代码 简单明了的 死锁 。嘿嘿嘿! ok 我们看一下hotspo...

  • Java 代码模拟死锁

    题目描述 Java代码模拟死锁 死锁条件 互斥使用:一个资源只能分配给一个线程 不可剥夺:资源只能由占有者释放,申...

  • Java 代码模拟死锁

    题目描述 Java代码模拟死锁 死锁条件 互斥使用:一个资源只能分配给一个线程 不可剥夺:资源只能由占有者释放,申...

  • 多线程练习--死锁

    关于java的死锁可能网上一大堆的代码,作为初学者我觉得还是很有必要练习下,亲自实现,并分析其死锁的原理。 死锁的...

  • Java 死锁代码及验证

    1. 死锁代码 DeadLockDemo 2. 验证 1. idea 开发验证 在 idea 中运行上述代码,可得...

网友评论

      本文标题:Java 死锁代码

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