最佳答案
根据您提到的 Javadoc:
A thread is alive if it has been started and has not yet died.
线程在其 start()
方法被调用时“启动”,并在其 run()
方法结束时或在 stop 时“死亡” ()
(现已弃用)被调用。所以,是的,当线程的 run() 方法仍在执行时,它是“Activity 的”,但在调用 start()
之间的时间窗口中,它也是“Activity 的” > 以及 JVM 对 run()
方法的隐式调用。
您还可以查看 Thread.getState()
和 interesting information about Thread States由@Marou Maroun 建议。
我还遵循他的建议,警告您,如果抛出异常并传播到 run
之外,线程可能会提前结束。在这种情况下,线程将不再存在。
编辑:根据@zakkak的建议,即使run()
方法尚未启动,线程也可以被认为是 Activity 的。如果您想正确控制何时调用它,请使用 ScheduledExecutorService
,特别是 schedule()
方法可以为您提供更精确的执行计划。
关于java - Java 线程什么时候处于 Activity 状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61707005/