线程状态Thread.State
线程状态Thread.State
线程状态。线程可以处于下列状态之一:
- NEW
至今尚未启动的线程处于这种状态。 - RUNNABLE
正在 Java 虚拟机中执行的线程处于这种状态。 - BLOCKED
受阻塞并等待某个监视器锁的线程处于这种状态。 - WAITING
无限期地等待另一个线程来执行某一特定操作的线程处于这种状态。 - TIMED_WAITING
等待另一个线程来执行取决于指定等待时间的操作的线程处于这种状态。 - TERMINATED
已退出的线程处于这种状态。
观察线程状态:
package multithreading;
import static java.lang.Thread.*;
public class TestState {
public static void main (String[] args) throws InterruptedException {
Thread thread = new Thread(()->{
for (int i = 0; i < 5; i++) {
try {
sleep(100);
} catch (Exception e) {
e.printStackTrace();
}
}
System.out.println("////////");
});
// 观察状态
State state = thread.getState();
System.out.println(state); // NEW
// 观察启动后
thread.start(); // 启动线程
state = thread.getState();
System.out.println(state); // RUN
while(state != State.TERMINATED){ // 只要线程不终止,就一直输出状态
sleep(100);
state = thread.getState(); // 更新线程状态
System.out.println(state); // 输出状态
}
}
}
运行结果:

线程一旦死亡,就不可再次启动

浙公网安备 33010602011771号