多執行緒執行過程(生命週期)

2021-09-25 22:13:12 字數 914 閱讀 4278

生命週期簡單示意:

start(建立)—>ready(就緒)<—>running(執行)—>blocking(阻塞)(可以返回到ready,但不能直接返回到running)||

|dead(死亡)

多執行緒有五個狀態,分別是新建(new)、就緒(runnable)、執行(running)、阻塞(blocked)和死亡(dead)。

建立:執行new方法建立物件,即進入建立狀態

就緒:建立物件後,執行start方法,即被加入執行緒佇列中等待獲取cpu資源,這個時候即為就緒狀態

執行:cpu騰出時間片,該thread獲取了cpu資源開始執行run方法中的**,即進入了執行狀態

阻塞:如果在run方法中執行了sleep方法,或者呼叫了thread的wait/join方法,即意味著放棄cpu資源而進入阻塞狀態,但是還沒有執行完畢,待重新獲取cpu資源後,重新進入就緒狀態

死亡:一般停止執行緒有兩種方式:1執行完畢run方法,2呼叫stop方法,後者不推薦使用。可以在run方法中迴圈檢查某個public變數,當想要停止該執行緒時候,通過thread.para為false即可以將run提前執行完畢,即進入了死亡狀態

如何終止執行緒?

(1)在run方法中加return,因為 run執行結束了,則該執行緒就死亡了

(2)共用乙個公共的開關,並且使用中斷interrupt()來防止阻塞

**如下所示:

public class test5 implements runnable 

@override

public void run() else

try catch (interruptedexception e)

} }}

JAVA 多執行緒 生命週期

1 新建 當乙個執行緒ticktthread1 thread1 new ticktthread1 視窗1 ticket 被new 出來的時候。執行緒就是乙個新建的狀態。2 就緒狀態 當呼叫了start 方法之後。進入就緒狀態。就緒狀態是什麼狀態 某乙個時刻cpu 只能處理乙個執行緒的事物。把時間片分...

java多執行緒 執行緒生命週期

本節目標 了解執行緒的宣告週期 了解執行緒的停止操作 乙個新的執行緒建立之後,通過start 方法進入執行狀態,在執行狀態時可以使用yield 進行執行緒禮讓,但是仍然可以執行,使用wait 方法暫停乙個執行緒。suspend resume stop 都會產生死鎖問題,不建議使用。如果想讓執行緒停止...

java 多執行緒 執行緒的生命週期

執行緒的生命週期主要分為下面5個狀態 當建立thread類的乙個例項 物件 繼承thread類,實現runnable介面,呼叫callable介面,此執行緒進入新建狀態 未被啟動 執行緒已被啟動,執行緒物件建立好之後進入就緒狀態,此時會等待獲取cpu的執行權 獲取到cpu執行權之後,執行緒物件開始執...