首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在下面的例子中,join(long millis)是如何工作的?

在下面的例子中,join(long millis)是如何工作的?
EN

Stack Overflow用户
提问于 2016-08-09 21:02:35
回答 1查看 469关注 0票数 0
代码语言:javascript
复制
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();  
 }  

}

我得到的输出如下所示

代码语言:javascript
复制
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次之后)死了,那么它是如何在之后执行的?

EN

回答 1

Stack Overflow用户

发布于 2016-08-09 21:14:41

join(long)方法等待线程在给定的毫秒数内最多。因为在1500ms之后t1还没有完成,所以加入调用只是让主线程等待1500ms。

https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html#join-long-

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38851551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档