Thread Life Cycle

Thread 生命周期

在使用多線程時,生命周期是非常重要的,下圖展示了Thread運行的狀態(tài)圖

threadLifeCycle.png

New Thread

使用new創(chuàng)建新的Thread對象時,線程狀態(tài)為 New Thread,此時線程不活動,是Java的內(nèi)部狀態(tài)

Runnable

在Thread對象上調(diào)用start()時,狀態(tài)變?yōu)镽unnable??丶x予Thread調(diào)度程序以完成執(zhí)行。是否立即運行線程或運行前將其保留在可運行的線程池中,取決于線程調(diào)度程序的OS。

Running

線程正在執(zhí)行時,狀態(tài)為Running,線程調(diào)度程序從可運行的線程池中選擇一個線程,并將狀態(tài)改為Running,CPU執(zhí)行線程,線程狀態(tài)可改為Runnable、Dead或Blocked。
運行狀態(tài)取決于時間切片、完成run()或等待資源。

阻塞、等待

線程可以等待其他線程使用線程連接完成,等待待使用資源。若線程等待狀態(tài)結束,則變?yōu)镽unnable,且會被移回可運行的線程池。

DEAD

若線程執(zhí)行完成,則狀態(tài)變?yōu)镈ead,且認為它不存在。

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 進程和線程 進程 所有運行中的任務通常對應一個進程,當一個程序進入內(nèi)存運行時,即變成一個進程.進程是處于運行過程中...
    勝浩_ae28閱讀 5,258評論 0 23
  • Java多線程學習 [-] 一擴展javalangThread類 二實現(xiàn)javalangRunnable接口 三T...
    影馳閱讀 3,111評論 1 18
  • 本文主要講了java中多線程的使用方法、線程同步、線程數(shù)據(jù)傳遞、線程狀態(tài)及相應的一些線程函數(shù)用法、概述等。 首先講...
    李欣陽閱讀 2,600評論 1 15
  • 該文章轉自:http://blog.csdn.net/evankaka/article/details/44153...
    加來依藍閱讀 7,471評論 3 87
  • 知識點:一. 什么是線程: 進程是指運行中的應用程序,每一個進程都有自己獨立的內(nèi)存空間。一個應用程序可以同時啟動多...
    木有魚丸啦閱讀 697評論 0 0

友情鏈接更多精彩內(nèi)容