執行緒的生命週期

2021-10-24 08:44:59 字數 2073 閱讀 6171

1.執行緒的狀態

public

class

thread

implements

runnable

public state getstate()

}

如執行緒原始碼所示,共定義了6種執行緒狀態,new、runnable、blocked、waiting、timed_waiting以及terminated。

2.執行緒狀態轉換

執行緒6個狀態之間的轉換如下圖所示。

3.new、runnable以及terminated狀態的**演示

/**

* 描述:展示執行緒的new、runnable、terminated狀態。

* 即使是正在執行的執行緒,也是runnable狀態,而不是running。

*/public

class

newrunnableterminated

implements

runnable

}public

static

void

main

(string[

] args)

catch

(interruptedexception e)

system.out.

println

("當前執行緒狀態:"

+ thread.

getstate()

);trycatch

(interruptedexception e)

system.out.

println

("當前執行緒狀態:"

+ thread.

getstate()

);}}

當前執行緒狀態:new

當前執行緒狀態:runnable

正在輸出1

正在輸出2

正在輸出3..

....

當前執行緒狀態:runnable..

....

正在輸出998

正在輸出999

正在輸出1000

當前執行緒狀態:terminated

4.blocked、waiting以及timed_waiting狀態的**演示

/**

* 描述:展示blocked, waiting, timed_waiting的狀態。

*/public

class

blockedwaitingtimedwaiting

implements

runnable

catch

(interruptedexception e)

system.out.

println

("執行緒1當前狀態:"

+ thread1.

getstate()

);system.out.

println

("執行緒2當前狀態:"

+ thread2.

getstate()

);trycatch

(interruptedexception e)

system.out.

println

("執行緒1當前狀態:"

+ thread1.

getstate()

);}@override

public

void

run(

)private

synchronized

void

syn(

)catch

(interruptedexception e)

}}

程式執行結果如下所示。

執行緒1當前狀態:timed_waiting

執行緒2當前狀態:blocked

執行緒1當前狀態:waiting

執行緒生命週期

今天看到一段這樣的 handle hthread createthread null,0,add,a,0,null hmutext createmutex null,false,l huchiti closehandle hthread 簡單的說,關閉了執行緒控制代碼 關閉了執行緒,其兩者的生命週期...

執行緒生命週期

本章目標 了解執行緒的生命週期 了解執行緒的停止操作 執行緒的生命週期 注意大部分的執行緒生命週期的方法基本上都已經學過了,那麼在這裡有以下三個新方法 suspend 方法 暫時掛起執行緒 resume 方法 恢復掛起的執行緒 stop 方法 停止執行緒 但是對於執行緒中suspend resume...

執行緒生命週期

執行緒的生命週期分為五種狀態 新建狀態 就緒狀態 執行狀態 阻塞狀態 死亡狀態 剛new出來的執行緒物件。新建狀態呼叫start 方法就進入就緒狀態。就緒狀態的執行緒又叫做可執行狀態,表示當前執行緒具有搶奪cpu時間片的權利 cpu時間片就是執行權 當乙個執行緒搶奪到cpu時間片之後就開始執行run...