【发布时间】:2012-02-09 23:29:35
【问题描述】:
这纯粹是一个理论问题,因为我不确定导致此问题的条件是否普遍。
例如,假设您有一个线程,您使用它的 start 方法启动:
Thread c = new Thread();
c.start();
然后直接在线程上调用 Join() 方法,告诉你所在的方法等待线程执行完毕后再继续。
c.join();
线程是否有可能在调用 join 方法之前执行并完成,因此该方法不知道它必须等待 c 完成才能继续?我想你可以在调用 start() 方法之前尝试调用 join() 方法,但是每当我在测试用例中尝试过这个时,都会出现错误。
任何人都知道可能的解决方法,或者 JVM 会处理它吗?正如我所说的,我无法触发这种情况,但理论上是有可能的......
【问题讨论】:
-
根据其他人的意见,可以得出结论,任何其他线程上的 join() 只是对调用线程的标准检查。
标签: java multithreading