Java 线程何时处于活动状态?
2022-09-01 18:59:10
根据你提到的Javadoc:
如果线程已启动且尚未死亡,则该线程处于活动状态。
当调用其方法时,线程“启动”,在其方法结束时“死亡”,或者调用(现已弃用)时“死亡”。所以,是的,当线程的方法仍在进行时,它是“活动的”,但是在JVM调用和隐式调用方法之间的时间窗口中,它也是“活动的”。start()
run()
stop()
run()
start()
run()
您还可以查看Thread.getState()
以及有关@Marou Maroun建议的线程状态的有趣信息。
我也遵循他的建议,警告您,如果抛出传播超出的异常,线程可能会过早结束。在这种情况下,线程将不再处于活动状态。run
编辑:正如@zakkak所建议的那样,即使该方法尚未启动,也可以将线程视为活动状态。如果你想适当地控制何时调用它,请使用 ScheduledExecutorService
,特别是 schedule()
方法,它为您提供了更精确的执行计划。run()
在 start() 返回后,直到 run() 返回到 JVM,线程才处于活动状态。