繁体   English   中英

Thread.join()(实例方法)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM