首頁  >  文章  >  線程的生命週期分為幾個部分

線程的生命週期分為幾個部分

清浅
清浅原創
2019-04-02 17:41:4949150瀏覽

執行緒的生命週期總共分為五個部分分別是:新建,就緒,運行,阻塞以及死亡。由於cpu需要在多條執行緒中切換因此執行緒狀態也會在多次執行和阻斷之間切換

線程的生命週期分為幾個部分

【建議課程: #C語言教學

當執行緒被建立並啟動以後,它既不是一啟動就進入了執行狀態,也不是一直處於執行狀態。在執行緒的生命週期中,它要經過新建(New)、就緒(Runnable)、運行(Running)、阻塞(Blocked)和死亡(Dead)五種狀態。尤其是當執行緒啟動以後,它不能一直「霸佔」CPU獨自運行,所以CPU需要在多條執行緒之間切換,於是執行緒狀態也會多次在運行、阻塞之間切換。

生命週期的五種狀態

新建(new Thread)

當建立Thread類別的一個實例(對象)時,此執行緒進入新建狀態(未被啟動)。

例如:

Thread  t1=new Thread();

就緒(runnable)

執行緒已經啟動,正在等待被指派給CPU時間片,也就是說此時執行緒正在就緒佇列中排隊等候得到CPU資源

例如:

t1.start();

#執行(running)

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

堵塞(blocked)

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

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

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

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

死亡(dead)

#當執行緒執行完畢或被其它執行緒殺死,執行緒就進入死亡狀態,此時線程不可能再進入就緒狀態等待執行。

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

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

總結:以上就是這篇文章的全部內容,希望對大家有幫助

以上是線程的生命週期分為幾個部分的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn