Java: 写一个死锁的程序

网友投稿 229 2022-08-23

Java: 写一个死锁的程序

package com.example.app;public class DeadLockTest { public static void main(String[] args) throws Exception { Thread t1=new Thread(new Runnable() { @Override public void run() { A.test(); } },"Thread-A"); Thread t2=new Thread(new Runnable() { @Override public void run() { B.test(); } },"Thread-B"); t1.start(); t2.start(); t1.join(); t2.join(); }}class A{ public static synchronized void test(){ System.out.println("test function in class A......"); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } B.test(); }}class B{ public static synchronized void test(){ System.out.println("test function in class B......"); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } A.test(); }}

分析: Thread-A 持有类A的class对象的锁,等待类B的class对象的锁 Thread-B 持有类B的class对象的锁,等待类A的class对象的锁 形成死锁

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:爆冷!王中王围棋争霸赛柯洁首轮遭淘汰!(柯洁围棋大赛)
下一篇:java : 线程 interrupt
相关文章

 发表评论

暂时没有评论,来抢沙发吧~