1. 程式人生 > >java 執行緒生命週期

java 執行緒生命週期

執行緒的生命週期可以通過檢視Thread 的原始碼來看。
Thread這個類中有一個 State 的列舉類,其中定了了執行緒的6種狀態

public enum State {
        NEW,
		
        RUNNABLE,

        BLOCKED,

        WAITING,

        TIMED_WAITING,
        
        TERMINATED;
    }

這6種狀態之間的關係我大致畫了 如下的一個圖:
在這裡插入圖片描述

下面對這幾個狀態做一一介紹

狀態名 解釋
NEW 執行緒建立完畢但是還麼有啟動,也就是一個執行緒物件剛被 new 出來 但是還沒有去呼叫他的 start() 方法
RUNNABBLE 呼叫了start() 方法,執行緒正在執行
TERMINATED 執行緒終止,也就是一個執行緒結束了
BLOCKED 執行緒阻塞,可以呼叫sleep 方法,進入這個狀態,sleep 方法不會釋放資源,從而導致阻塞
WAITING 執行緒等待,呼叫notify 喚醒
TIMED_WAITING 等待超時,可以設定一個超時時間,過了超時時間自動回到RUNABLE狀態

關於這6種狀態之間的相互轉換,在後續的章節中,還會做進一步的介紹。