1. 程式人生 > >java執行緒生命週期的圖示以及文字說明

java執行緒生命週期的圖示以及文字說明

這裡寫圖片描述

執行緒的生命週期,把圖轉化為文字就是:
執行緒通過new方法建立,呼叫start()方法,執行緒進入就緒狀態,等待系統的排程(時間片輪轉排程)。當系統排程,進入執行狀態。正常結束或者異常退出,程序進入死亡狀態。

處於執行狀態的執行緒若遇到sleep()方法,則執行緒進入睡眠狀態,不會讓出資源鎖,sleep()方法結束,執行緒轉為就緒狀態,等待系統重新排程。

處於執行狀態的執行緒可能在等待io,也可能進入掛起狀態。io完成,轉為就緒狀態。

處於執行狀態的執行緒yield()方法,執行緒轉為就緒狀態。(yield只讓給許可權比自己高的)

處於執行狀態的執行緒遇到wait() 方法(object的方法),執行緒處於等待狀態,需要notify()/notifyALL()來喚醒執行緒,喚醒後的執行緒處於鎖定狀態,獲取了“同步鎖”,之後,執行緒才轉為就緒狀態。

處於執行的執行緒synchronized,加上後 變成同步操作。處於鎖定狀態,獲取了“同步鎖”,之後,執行緒才轉為就緒狀態。