while (isAlive()) {
wait(0);
}
当工作线程完成工作并死亡时,主线程现在会发生什么?通过线程调度程序通过在工作线程上自动调用notifyAll方法来通知它吗?
答案 0 :(得分:1)
由于加入的线程已经在源代码中看到了wait()
,因此目标线程必须调用notify()
或notifyAll
来唤醒它。
如果你在Thread源代码中的任何地方都看不到它,那么它可能发生在不同的类,或本机代码或非公共JVM供应商实现代码中。
但这是一个实现细节:您可以确定join
将在目标线程完成时返回,如文档中所述。
答案 1 :(得分:0)
主线是什么意思? 您是在实现Runnable还是在类中创建了多个Thread? 如果您提供更多代码,可能会帮助您。
答案 2 :(得分:0)
从主线程内调用workerThread.join()
将导致主线程暂停执行,直到workerThread
终止。然后,主线程转到join()
调用后的下一个语句。
这在Java教程的SimpleThreads示例中进行了演示。