a)繼承thread類
b)實現runnable介面
c)實現callable介面
d)執行緒池
執行緒共包括以下 5 種狀態:
1. 新建狀態(new):執行緒物件被建立後,就進入了新建狀態。例如,thread thread = new thread()。
2. 就緒狀態(runnable):也被稱為「可執行狀態」。執行緒物件被建立後,其它執行緒呼叫了該物件的start()方法,從而來啟動該執行緒。例如,thread.start()。處於就緒狀態的執行緒,隨時可能被cpu排程執行。
3. 執行狀態(running):執行緒獲取cpu許可權進行執行。需要注意的是,執行緒只能從就緒狀態進入到執行狀態。
4. 阻塞狀態(blocked):阻塞狀態是執行緒因為某種原因放棄cpu使用權,暫時停止執行。直到執行緒進入就緒狀態,才有機會轉到執行狀態。阻塞的情況分三種:
5. 死亡狀態(dead):執行緒執行完了或者因異常退出了run()方法,該執行緒結束生命週期。
:sleep和wait區分:
sleep是thread的方法,wait是object的方法
sleep不會釋放鎖,wait會釋放鎖
t.join() 表示執行緒t執行完了在執行下面的
yield 關鍵字解析
yield()應該做的是讓當前執行執行緒回到可執行狀態,以允許具有相同優先順序的其他執行緒獲得執行機會。
執行緒的幾種狀態
這個是面試經常被問到的問題,多執行緒的話首先要對執行緒的狀態有個清晰的認識才可以 這裡做個簡單的總結 1.新建狀態 new 新建立乙個執行緒物件的初始狀態 也就是通過new關鍵字建立乙個執行緒物件,但並沒有呼叫start方法時候的狀態 thread t new thread tt 2.就緒狀態 ru...
執行緒的幾種狀態
執行緒的幾種狀態及狀態之間的轉化 新建狀態 建立乙個新的執行緒 此時執行緒未啟動 就緒狀態 乙個新建的執行緒並不會自動開始執行,要執行執行緒,必須呼叫執行緒的start 方法,當執行緒物件呼叫start 方法啟動了執行緒,start 方法建立執行緒執行的系統資源,並排程執行緒執行run 方法,當st...
執行緒 執行緒的幾種狀態轉換。
執行緒在一定條件下,狀態會發生變化。執行緒一共有以下幾種狀態。1.新建狀態 new 新建立了乙個執行緒物件。2.就緒狀態 runnable 執行緒物件建立後,在其他地方呼叫了該執行緒的start 方法,該執行緒準備好所有執行前的資源,然後位於可執行執行緒池中,變得可執行,等待cpu的執行權。3.執行...