如果两个线程在Java中连接会发生什么?

时间:2017-03-29 18:33:35

标签: java multithreading

假设我有两个线程t1和t2,根据Oracle文档,t1.join表示当前线程将等待t1完成。我的问题是,如果线程已经完成怎么办?例如:

Thread t1 = new Thread(new EventThread("e1"));
t1.start();
Thread e2 = new Thread(new EventThread("e2"));
t2.start();
while (true)
{
    try {
    t1.join();
    t2.join();
    break;
    }
}

如果t2已经完成怎么办?

1 个答案:

答案 0 :(得分:0)

来自join()的文档:

  

此方法的调用与调用

的方式完全相同
join(0)

join(long millis)的文档说:

  

此实现使用以this.wait 为条件的this.isAlive调用循环。

因此,如果isAlive返回false(即线程已完成),则永远不会调用wait,而join只会立即返回。