Observar el estado del hilo

Estado del hilo:

  • Estado del hilo. Un hilo puede estar en uno de los siguientes estados:

    • NEW
      Los subprocesos que no se han iniciado están en este estado.
    • RUNNABLE
      El subproceso que se ejecuta en la máquina virtual Java se encuentra en este estado.
    • BLOCKED
      Los subprocesos que están bloqueados esperando el bloqueo del monitor se encuentran en este estado.
    • WAITING
      Un subproceso que está esperando a que otro subproceso realice una acción específica se encuentra en este estado.
    • TIMED_WAITING
      El subproceso que está esperando que otro subproceso realice una acción durante el tiempo de espera especificado se encuentra en este estado.
    • TERMINATED
      Los subprocesos que han salido están en este estado.

    Un hilo puede estar en un estado en un momento dado. Estos estados son estados de máquinas virtuales que no reflejan el estado de ningún subproceso del sistema operativo.

Inserte la descripción de la imagen aquí

  • Caso

    package Thread;
    
    //观察测试线程的状态
    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);
    
    
            //观察启动后
            thread.start();  //启动线程
            state=thread.getState();
            System.out.println(state); //run
    
            //只要线程不终止,就一直输出状态
            while (state!=Thread.State.TERMINATED){
          
          
                Thread.sleep(100);
                //更新线程状态
                state=thread.getState();
                System.out.println(state);
            }
        }
    }
    
    

Supongo que te gusta

Origin blog.csdn.net/qq_45162683/article/details/111595427
Recomendado
Clasificación