[英]Thread.join() (instance method)
为什么在启动线程之前无法.join()
? 不应该隐含的是,即使我之前未启动,如果我在线程上调用join(),也应该启动吗?
正如Javadoc所说,因为join()
等待线程死亡。 如果还没有开始,它就不会死。
我不认为如果不启动它就不应启动线程,因为该方法会做两件事:启动线程并等待线程,这是不好的设计。
根据javadoc
join方法允许一个线程等待另一个线程的完成。 如果t
是当前正在执行线程的Thread对象,
t.join();
导致当前线程暂停执行,直到t的线程终止。 连接的重载使程序员可以指定等待时间。
因此,它清楚地表明,如果您加入一个线程,那么当前线程将等到线程终止。 因此,如果尚未启动线程,如何终止它。
矛盾证明:D
说您可以不启动就加入线程t
。 然后你打电话
t.join();
现在,根据加入行为,当前线程将处于等待状态。 现在说您想到了一些邪恶的想法(!),而您还没有启动线程(:D)。 现在会发生什么? 想象一下这种情况,您将找到答案
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.