小编典典

Java线程何时存活?

java

这是关于Java线程词汇的一个非常基本的问题。

我看不到任何可能的重复项,但可能存在。

Oracle文档中“
活着
”一词指的是什么?

run()方法尚未完成时还是其他参数?


阅读 187

收藏
2020-09-08

共1个答案

小编典典

根据您提到的Javadoc:

如果线程已经启动但尚未死亡,则该线程是活动的。

线程在start()调用其方法时“启动”,并在其方法结束时“死亡”
run(),或在stop()调用时(现在已弃用)。因此,是的,当线程的run()方法仍在进行中时,该线程为“活动” ,但在JVM
调用start()与隐式调用该run()方法之间的时间窗口中,该线程也为“活动” 。

您还可以检查Thread.getState()有关线程有趣的信息,美国建议由@Marou
Maroun。

我也遵循他的建议,警告您,如果抛出Exception并传播到以外,则Thread可能会提前结束run。在这种情况下,线程将不再存在。

编辑:如@zakkak所建议,即使该run()方法尚未启动,也可以将线程视为活动线程。如果您希望对何时调用它进行适当的控制,请使用ScheduledExecutorService,特别是schedule()为您提供更精确的执行计划的方法。

2020-09-08