0、目錄
一、線程介紹
二、線程生命週期
三、進程介紹
四、進程與線程的對比
一、線程介紹
二、線程生命週期
首先看整個流程圖:
具體:
1、新建狀態:此時是Thread t = new Thread()之後的一個狀態,這裏僅僅創建了一個Thread類的對象。
2、就緒狀態:線程對象創建之後,調用t.start()方法,線程進入就緒狀態,等待獲取CPU的使用權,因爲在同一個時間裏CPU只能執行某一個線程。注意,start()方法之後並沒有立即執行,沒有立即進入運行狀態。
3、運行狀態:線程進入就緒狀態後,並不是立即進入運行狀態,要經過系統處理,獲取到CPU的使用權後才能進入到運行狀態。線程進入運行狀態後,並不能一直處於運行狀態,當使用完系統分配的時間之後,系統就會失去CPU的使用權,進入就緒狀態,再次等待獲取CPU資源。
4、阻塞狀態,由於IO阻塞、調用sleep(),wait(),等待同步鎖等原因,線程進入阻塞狀態,結束阻塞狀態後直接進入就緒狀態而非運行狀態。
4、死亡狀態:線程正常執行完成,或出現異常Exception,或出現錯誤Error,或調用stop()方法等後會進入死亡狀態。
三、進程介紹
四、進程與線程的對比