12.觀測線程狀態


線程狀態觀測

Thread.State

線程狀態。線程可以處於以下狀態之一:

new:尚未啟動的線程處於此狀態

runnable:在java虛擬機中執行的線程處於此狀態

blocked:被阻塞等待監視器鎖定的線程處於此狀態

waiting:正在等待另一個線程執行特定動作的線程處於此狀態

timed_waiting:正在等待另一個線程執行動作達到指定等待時間的線程處於此狀態

terminated:已退出的線程處於此狀態

一個線程可以在給定時間點處於一個狀態。這些狀態是不反映任何操作系統線程狀態的虛擬機狀態

package com.lei;

//觀測測試線程的狀態
public class TestState {
  public static void main(String[] args) {
      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.State.TERMINATED){ //只要線程不終止,就一直輸出狀態
          try {
              Thread.sleep(100);
              state = thread.getState(); //更新線程狀態
              System.out.println(state); //輸出狀態
          } catch (InterruptedException e) {
              e.printStackTrace();
          }

      }


  }

}


NEW
RUNNABLE
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
///////
TERMINATED

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM