線程與進程對比分析

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()方法等後會進入死亡狀態。

三、進程介紹

四、進程與線程的對比

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章