?
?
?
[初始狀態]
僅是在語言層面創建 了線程對象, 還未與操作系統線程關聯
?
[可運行狀態] (就緒狀態)
指該線程已經被創建(與操作系統線程關聯), 可以由CPU調度執行
?
[運行狀態]
指獲取了CPU時間片運行中的狀態
當CPU時間片用完,會從[運行狀態]轉換至[可運行狀態],會導致線程的上下文切換
如果調用了阻塞API,如BIO讀寫文件,這時該線程實際不會用到CPU,會導致線程上下文切換,進
?
[阻塞狀態]
等BIO操作完畢,會由操作系統喚醒阻塞的線程,轉換至[可運行狀態]
與[可運行狀態]的區別是,對[阻塞狀態]的線程來說只要它們一-直不喚醒,調度器就-直不會考慮調度它們
?
[終止狀態]
表示線程已經執行完畢,生命周期已經結束,不會再轉換為其它狀態
?