永发信息网

java疑问:求教各位前辈帮忙模拟一个线程死锁,刚学到线程,对于死锁概念不明确。

答案:1  悬赏:20  手机版
解决时间 2021-11-21 00:00
  • 提问者网友:嗝是迷路的屁
  • 2021-11-20 00:19
java疑问:求教各位前辈帮忙模拟一个线程死锁,刚学到线程,对于死锁概念不明确。
最佳答案
  • 五星知识达人网友:蓝房子
  • 2019-09-19 23:51
class ZhangSan {

public void say(){
System.out.println("张三对李四说:'你把书还我,我就把画给你。'");
}

public void get(){
System.out.println("张三得到书了。");
}

}

class LiSi {

public void say(){
System.out.println("李四对张三说:'你把画还我,我就把书给你。'");
}

public void get(){
System.out.println("李四得到画了。");
}

}

public class MyThreadSynchronized implements Runnable {

private static ZhangSan zs=new ZhangSan();
private static LiSi ls=new LiSi();
private boolean flag=false;

public void run(){
if (flag){
synchronized(zs){
zs.say();
try{
Thread.sleep(1000);
}catch(Exception e){
e.printStackTrace();
}
synchronized(ls){
zs.get();
}
}
}else{
synchronized(ls){
ls.say();
try{
Thread.sleep(1000);
}catch(Exception e){
e.printStackTrace();
}
synchronized(zs){
ls.get();
}
}
}
}

public static void main(String args[]){
MyThreadSynchronized m1=new MyThreadSynchronized();
MyThreadSynchronized m2=new MyThreadSynchronized();
m1.flag=true;
m2.flag=false;
new Thread(m1).start();
new Thread(m2).start();
}

}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯