執行緒的基本概念 執行緒的基本狀態以及狀態之間的關係

2021-10-10 21:38:16 字數 670 閱讀 5770

乙個執行緒是程序的乙個順序執行流,

同類的多個執行緒共享一塊記憶體空間和一組系統資源,執行緒本身有乙個供程式執行時的堆疊。執行緒在切換時負荷小,因此,執行緒也被稱為輕負擔程序,乙個程序可以包含多個執行緒。

1、新建狀態(new):新建立了乙個執行緒物件。

2、就緒狀態(runnable):執行緒物件建立後,其他執行緒呼叫了該物件的start()方法。

該狀態的執行緒位於可執行執行緒池中,變得可執行,等待獲取cpu的使用權。

3、執行狀態(running):就緒狀態的執行緒獲取了cpu,執行程式**。

4、阻塞狀態(blocked):阻塞狀態是執行緒因為某種原因放棄cpu使用權,暫時停止執行。

直到執行緒進入就緒狀態,才有機會轉到執行狀態。阻塞的情況分三種:

①等待阻塞:執行的執行緒執行wait()方法,jvm會把該執行緒放入等待池中。

②同步阻塞:執行的執行緒在獲取物件的同步鎖時,若該同步鎖被別的執行緒占用,

則jvm會把該執行緒放入鎖池中。

③其他阻塞:執行的執行緒執行sleep()或join()方法,或者發出了i/o請求時,

jvm會把該執行緒置為阻塞狀態。當sleep()狀態超時、join()等待執行緒終止

或者超時、或者i/o處理完畢時,執行緒重新轉入就緒狀態。

5、死亡狀態(dead):執行緒執行完了或者因異常退出了run()方法,該執行緒結束生命週期。

執行緒的基本概念 執行緒的基本狀態以及狀態之間的關係

乙個程式中可以有多條執行線索同時執行,乙個執行緒就是程式中的一條執行線索,每個執行緒上都關聯有要執行的 即可以有多段程式 同時執行,每個程式至少都有乙個執行緒,即main方法執行的那個執行緒。如果只是乙個cpu,它怎麼能夠同時執行多段程式呢?這是從巨集觀上來看的,cpu一會執行a線索,一會執行b線索...

執行緒的基本概念 執行緒的基本狀態以及狀態之間的關係?

執行緒 乙個程式中可以有多條執行線索同時執行,乙個執行緒就是程式中的一條執行線索,每個執行緒上都關聯有要執行的 即可以有多段 同時執行,每個程式至少有乙個執行緒,即main方法執行的執行緒。基本狀態 就緒 執行 阻塞 掛起 結束,wait 必須在同步 塊中使用。關係 呼叫執行緒的start 方法後使...

多執行緒的基本概念

同步和非同步通常用來形容一次方法的呼叫。同步方法呼叫一旦開始,呼叫者必須等到方法代用返回後,才能繼續後續的行為。非同步方法呼叫更像乙個訊息傳遞,一旦開始,方法呼叫就會即可放回,呼叫者就可以繼續後續的操作。而非同步方法通常會在另外乙個執行緒中真是的執行,整個過程不會阻礙呼叫者的工作。併發 多個任務序列...