多執行緒之執行緒的生命週期

2022-09-13 09:51:10 字數 1239 閱讀 2850

答:1.新建狀態

2.就緒狀態

3.執行狀態

4.阻塞狀態

5.死亡狀態

答:1.新建狀態:

用new關鍵字建立乙個執行緒後,該執行緒物件就處於新建狀態。

處於新生狀態的執行緒有自己的記憶體空間,通過呼叫start()方法進入就緒狀態。

2.就緒狀態:

處於就緒狀態執行緒具備了執行條件,但還沒分配到cpu,處於執行緒就緒佇列,等待系統為其分配cpu。

當系統選定乙個等待執行的執行緒後,它就會從就緒狀態進入執行狀態,該動作稱為「cpu排程」。

3.執行狀態

在執行狀態的執行緒執行自己的run方法中**,直到等待某資源而阻塞或完成任何而死亡。

如果在給定的時間片內沒有執行結束,就會被系統給換下來回到就緒狀態。

4.阻塞狀態

處於執行狀態的執行緒在某些情況下,如執行了sleep(睡眠)方法,或等待i/o裝置等資源,將讓出cpu並暫時停止自己執行,進入阻塞狀態。

在阻塞狀態的執行緒不能進入就緒佇列。只有當引起阻塞的原因消除時,如睡眠時間已到,或等待的i/o裝置空閒下來,執行緒便轉入就緒狀態,重新到就緒佇列中排隊等待,被系統選中後從原來停止的位置開始繼續執行。

5.死亡狀態

死亡狀態是執行緒生命週期中的最後乙個階段。執行緒死亡的原因有三個,乙個是正常執行

的執行緒完成了它的全部工作;另乙個是執行緒被強制性地終止,如通過stop方法來終止乙個

執行緒【不推薦使用】;三是執行緒丟擲未捕獲的異常。

答:1.等待i/o流的輸入輸出

2.等待網路資源,即網速問題

3.呼叫sleep()方法,需要等sleep時間結束

4.呼叫wait()方法,需要呼叫notify()喚醒執行緒

5.其他執行緒執行join()方法,當前執行緒則會阻塞,需要等其他執行緒執行完。

答:1.執行緒正常完成工作

2.呼叫stop()方法,強行停止執行緒

3.外部原因中斷執行緒

注意1:

interrupt方法用於中斷執行緒。呼叫該方法的執行緒的狀態為將被置為"中斷"狀態。

注意2:

執行緒中斷僅僅是置執行緒的中斷狀態位,不會停止執行緒。需要使用者自己去監視執行緒的狀態為並做處理。支援執行緒中斷的方法(也就是執行緒中斷後會丟擲interruptedexception的方法)就是在監視執行緒的中斷狀態,一旦執行緒的中斷狀態被置為「中斷狀態」,就會丟擲中斷異常。

多執行緒之結束執行緒生命週期(四)

通過設定乙個標識ture,false。通過標識關閉執行緒 public class threadend1 t.start thread.sleep 5 shutdown 關閉 private static void shutdown 通過判斷執行緒中斷標識 public class threaden...

java多執行緒 執行緒生命週期

本節目標 了解執行緒的宣告週期 了解執行緒的停止操作 乙個新的執行緒建立之後,通過start 方法進入執行狀態,在執行狀態時可以使用yield 進行執行緒禮讓,但是仍然可以執行,使用wait 方法暫停乙個執行緒。suspend resume stop 都會產生死鎖問題,不建議使用。如果想讓執行緒停止...

java 多執行緒 執行緒的生命週期

執行緒的生命週期主要分為下面5個狀態 當建立thread類的乙個例項 物件 繼承thread類,實現runnable介面,呼叫callable介面,此執行緒進入新建狀態 未被啟動 執行緒已被啟動,執行緒物件建立好之後進入就緒狀態,此時會等待獲取cpu的執行權 獲取到cpu執行權之後,執行緒物件開始執...