这段java 多线程代码为啥id是1的线程一直在等待?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了这段java 多线程代码为啥id是1的线程一直在等待?相关的知识,希望对你有一定的参考价值。
public class X_3_solution extends Thread
static Object o = new Object();
static int counter = 0;
int id ;
public X_3_solution(int id)
this.id = id;
o = new Object();
public void run()
if(id == 0)
new X_3_solution(1).start();
trysleep(100);catch (Exception e)
new X_3_solution(2).start();
return;
synchronized(o)
System.err.print(id + " --->");
try
if(counter == 0)
counter = 1;
o.wait();
else o.notifyAll();
catch (InterruptedException e)
System.err.println(id +" <---");
public static void main(String[] args)
new X_3_solution(0).start();
输出是 1 --->2 --->2 <---,
一直不输出 1 <---
以上是关于这段java 多线程代码为啥id是1的线程一直在等待?的主要内容,如果未能解决你的问题,请参考以下文章