執行緒的幾種狀態

2022-08-30 02:06:11 字數 735 閱讀 2641

執行緒的幾種狀態及狀態之間的轉化:

新建狀態:

建立乙個新的執行緒(此時執行緒未啟動)

就緒狀態:

乙個新建的執行緒並不會自動開始執行,要執行執行緒,必須呼叫執行緒的start()方法,當執行緒物件呼叫start()方法啟動了執行緒,start()方法建立執行緒執行的系統資源,並排程執行緒執行run()方法,當start()方法返回後,執行緒就處於就緒狀態

處於就緒狀態的執行緒並不會立即執行run()方法,執行緒還必須同其他執行緒競爭cpu時間,只有獲取cpu時間才可以執行執行緒。因為在單cpu的計算機系統中,不可能同時執行多個執行緒,乙個時刻僅有乙個執行緒處於執行狀態。因此此時可能有多個執行緒處於就緒狀態。對處於就緒狀態的執行緒是由系統的執行緒排程程式來排程的。

執行狀態:

就緒狀態的執行緒獲取到cpu,執行程式**

堵塞狀態:

執行緒因為某些原因放棄cpu的使用權暫停執行,直到執行緒進入到就緒狀態才有可能進入執行狀態

堵塞的情況:

1、執行的執行緒執行了wait()方法,該執行緒會釋放所持有的所有資源,進入堵塞狀態

2、執行緒呼叫乙個在i/o上被堵塞的乙個操作,即該操作在輸入輸出操作完成之前不會返回

3、執行緒試圖得到乙個鎖,而該鎖正在被其他執行緒持有

4、執行緒通過呼叫sleep()方法進入到睡眠狀態

結束狀態:執行緒執行完成或者異常退出

執行緒的幾種狀態

這個是面試經常被問到的問題,多執行緒的話首先要對執行緒的狀態有個清晰的認識才可以 這裡做個簡單的總結 1.新建狀態 new 新建立乙個執行緒物件的初始狀態 也就是通過new關鍵字建立乙個執行緒物件,但並沒有呼叫start方法時候的狀態 thread t new thread tt 2.就緒狀態 ru...

執行緒 執行緒的幾種狀態轉換。

執行緒在一定條件下,狀態會發生變化。執行緒一共有以下幾種狀態。1.新建狀態 new 新建立了乙個執行緒物件。2.就緒狀態 runnable 執行緒物件建立後,在其他地方呼叫了該執行緒的start 方法,該執行緒準備好所有執行前的資源,然後位於可執行執行緒池中,變得可執行,等待cpu的執行權。3.執行...

執行緒的幾種可用狀態

1.新建 new 新建立了乙個執行緒物件。2.可執行 runnable 執行緒物件建立後,其他執行緒 比如 main 執行緒 呼叫了該物件 的 start 方法。該狀態的執行緒位於可執行執行緒池中,等待被執行緒排程選中,獲 取 cpu 的使用權 3.執行 running 可執行狀態 runnable...