【发布时间】:2019-12-23 23:03:55
【问题描述】:
在这里,我正在尝试在线程终止后加入线程,代码工作正常,但我的问题是它不应该抛出一些错误消息或任何信息吗?
public class MultiThreadJoinTest implements Runnable {
public static void main(String[] args) throws InterruptedException {
Thread a = new Thread(new MultiThreadJoinTest());
a.start();
Thread.sleep(5000);
System.out.println("Begin");
System.out.println("End");
a.join();
}
public void run() {
System.out.println("Run");
}
}
【问题讨论】:
-
为什么要显示错误?
-
查看join的代码。它检查 isAlive,所以它会返回。
-
有些人有一种误解,认为
join会以某种方式导致线程被连接在一起并混合或什么的。事实上,它所做的只是等待其他线程终止(如果它还没有终止的话)。 -
documentation 没有提到如果线程已经终止则抛出异常。事实上,该措辞暗示在终止的线程上调用
join()将简单地返回。
标签: java multithreading java-threads