1. 程式人生 > >執行緒的生命週期及五種基本狀態

執行緒的生命週期及五種基本狀態

生命週期的五種狀態

新建(new Thread) 當建立Thread類的一個例項(物件)時,此執行緒進入新建狀態(未被啟動)。 例如:Thread  t1=new Thread();

就緒(runnable) 執行緒已經被啟動,正在等待被分配給CPU時間片,也就是說此時執行緒正在就緒佇列中排隊等候得到CPU資源。例如:t1.start();

執行(running) 執行緒獲得CPU資源正在執行任務(run()方法),此時除非此執行緒自動放棄CPU資源或者有優先順序更高的執行緒進入,執行緒將一直執行到結束。

死亡(dead) 當執行緒執行完畢或被其它執行緒殺死,執行緒就進入死亡狀態,這時執行緒不可能再進入就緒狀態等待執行。

自然終止:正常執行run()方法後終止

異常終止:呼叫stop()方法讓一個執行緒終止執行

堵塞(blocked) 由於某種原因導致正在執行的執行緒讓出CPU並暫停自己的執行,即進入堵塞狀態。

正在睡眠:用sleep(long t) 方法可使執行緒進入睡眠方式。一個睡眠著的執行緒在指定的時間過去可進入就緒狀態。

正在等待:呼叫wait()方法。(呼叫motify()方法回到就緒狀態)

被另一個執行緒所阻塞:呼叫suspend()方法。(呼叫resume()方法恢復)

常用方法

void run()   建立該類的子類時必須實現的方法

void start() 開啟執行緒的方法

static void sleep(long t) 釋放CPU的執行權,不釋放鎖

static void sleep(long millis,int nanos)

final void wait()釋放CPU的執行權,釋放鎖

final void notify()

static void yied()可以對當前執行緒進行臨時暫停(讓執行緒將資源釋放出來)