class TestJoinMethod2 extends Thread{
public void run(){
for(int i=1;i<=5;i++){
try{
Thread.sleep(500);
}catch(Exception e){System.out.println(e);}
System.out.println(Thread.currentThread().getName());
}
}
public static void main(String args[]){
TestJoinMethod2 t1=new TestJoinMethod2();
TestJoinMethod2 t2=new TestJoinMethod2();
TestJoinMethod2 t3=new TestJoinMethod2();
t1.start();
try{
t1.join(1500);
}catch(Exception e){System.out.println(e);}
t2.start();
t3.start();
}
}
我得到的输出如下所示
Thread-0
Thread-0
Thread-0
Thread-1
Thread-2
Thread-0
Thread-1
Thread-2
Thread-0
Thread-1
Thread-2
Thread-1
Thread-2
Thread-1
Thread-2
特定方法join(long millis)描述了线程最多等待毫秒毫秒。 现在我的问题是,如果Thread-0在1500毫秒之后(即前3次之后)死亡,那么之后如何执行呢?
答案 0 :(得分:2)
join(long)方法等待线程以最多给定的毫秒数。由于t1在1500毫秒后没有完成,所以加入调用只是让主线程等待1500毫秒。
https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html#join-long-