Java基礎教程:多線程基礎——線程的狀態
線程的狀態
在Java中,線程有6種狀態,分別爲:
- 初始:NEW
- 運行:RUNNABLE
- 阻塞:BLOCKED
- 等待:WAIT
- 超時等待:TIMED_WAIT
- 終止:TERMINAL
這六種狀態分別對應於Thread.State中的枚舉類型。
初始態
初始態表示一個線程剛被初始化,即new Thread()。
Thread thread = new Thread(); System.out.println(thread.getState()); //Output:NEW
這個沒什麼好說的,也是最簡單。
運行態
當調用一個Thread對象的start方法後,該線程進入運行態。運行態的名字是很有迷惑性的,其實運行態再細分還可以分爲兩個子狀態:
- Ready:調用start後,該線程放入可運行線程池中,等待被調度,獲得CPU運行權
- Running:獲得CPU時間片後變爲運行中狀態
也即是就緒和運行中都是運行態,一定要謹記!
阻塞態
阻塞態可能理解就要上一個臺階了,