執行緒4種狀態

2021-08-30 23:38:40 字數 594 閱讀 8010

1.就緒 (new)

執行緒物件已建立,但還啟動,所以還不能執行。

2.就緒(runnable)

執行緒物件呼叫starte方法後進入此狀態。進入這個狀態並不意味著在執行,它可能被阻塞或正執行。只要排程程式分給時間給執行緒,它就可以執行。

3.死亡(dead)

死亡線程通常方式是從run方法返回。

4.阻塞(blocked)

執行緒能夠執行,但某個條件阻止他的執行,當執行緒進入阻塞狀態時,排程機制將忽略該執行緒,不再分配給執行緒任何處理時間。直到進入就緒狀態,它才有執行的機會。

執行緒阻塞:

當乙個執行緒被阻塞時,可能有如下原因:

1.呼叫sleep方法

2.呼叫wait讓執行緒掛起,知道notify或notifall方法才讓它進入就緒狀態。

3.執行緒在等待某個輸入/輸出完成。

4.執行緒試圖在某個物件上呼叫其同步控制方法,但是物件鎖不可能。

sleep和wait

1.呼叫sleep的時候,鎖並沒有被釋放,呼叫wait方法,執行緒被掛起,鎖被釋放了。

2.wait、notify、notifyall是基類object的一部分,sleep是thread類的一部分。

執行緒的5種狀態

大體說一下執行緒的5種狀態 新建 就緒 執行 阻塞 死亡。新建狀態 new 執行緒剛剛建立,最初始的狀態。就緒狀態 runnable 執行緒建立完成後,並且執行的時機已經成熟,確定要執行了,但是還沒執行。沒有分配到cpu 執行狀態 running 線 真正正的獲得了cpu,然後執行相應的操作。帶啊跑...

執行緒的五種狀態

1.建立狀態,執行緒剛剛建立還未呼叫start方法。2.就緒狀態,呼叫start方法,還未搶到cpu執行權。3.執行狀態,搶到cpu執行權,執行run方法。4.阻塞狀態,包含sleep和wait 1 sleep使先執行緒處於睡眠狀態,期間讓出cpu使用權,不釋放資源。2 wait是執行緒處於等待狀態...

執行緒的五種狀態

1 新建狀態 new 當執行緒物件對建立後,即進入了新建狀態,如 thread t new mythread 2 就緒狀態 runnable 當呼叫執行緒物件的start 方法 t.start 執行緒即進入就緒狀態。處於就緒狀態的執行緒,只是說明此執行緒已經做好了準備,隨時等待cpu排程執行,並不是...