Observar el estado del hilo (estado)
diagrama de estado del hilo
[Falló la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo anti-leech, se recomienda guardar la imagen y cargarla directamente (img-mZpnH3sH-1648384673477) (E:\desktop\img\threadexecution.jpg)]
- Thread.State (extiende Enum)
- hilo.getState(); // actualizar hilo
- El hilo después de la muerte no se puede iniciar de nuevo.
- Heredar enumeración
- Estado del subproceso, un subproceso puede estar en uno de los siguientes estados (constante de estado)
- NUEVO estado de estudiante de primer año
- estado de ejecución EJECUTABLE
- estado de bloqueo BLOQUEADO
- ESPERA estado de bloqueo
- TIMED_WAITING estado de bloqueo
- TERMINADO estado de muerte
package com.state;
// 观察测试线程的状态
public class TestState {
public static void main(String[] args) throws InterruptedException {
Thread thread = new Thread(()->{
for (int i = 0; i < 5; i++) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("//");
});
// 观察状态
Thread.State state = thread.getState();
System.out.println(state); // NEW
// 观察启动后
thread.start(); // 启动线程
state = thread.getState(); // 更新线程
System.out.println(state); // Run
// 观察
while (state != thread.getState().TERMINATED){ // 只要线程不终止,一直观察状态
Thread.sleep(100);
state = thread.getState(); // 更新线程
System.out.println(state); // 输出状态
}
// thread.start(); // 死亡之后的线程,不可以再一次启动
}
}
/ thread.start(); // El hilo después de la muerte no se puede volver a iniciar
}
}