该程序创建线程 t0,它产生线程 t1,随后线程 t2 和 t3 被创建。线程执行后t3
,应用程序永远不会返回到之前产生的其他线程(t0,t1,t2)并且它们被卡住。
为什么线程t0
、、t1
和t2
挂起?
public class Cult extends Thread
{
private String[] names = {"t1", "t2", "t3"};
static int count = 0;
public void run()
{
for(int i = 0; i < 100; i++)
{
if(i == 5 && count < 3)
{
Thread t = new Cult(names[count++]);
t.start();
try{
Thread.currentThread().join();
}
catch(InterruptedException e)
{
e.printStackTrace();
}
}
System.out.print(Thread.currentThread().getName() + " ");
}
}
public static void main(String[] a`)
{
new Cult("t0").start();
}
}