java多執行緒的生命週期

2021-08-09 00:21:17 字數 1465 閱讀 7536

執行緒的生命週期

執行緒的狀態分為5種:

1.new(新建):執行緒物件已經被建立,但是還沒有呼叫該例項的start()方法;此時執行緒尚未獲取執行所需的任何系統資源;

2.runnable(就緒):執行緒已經呼叫start()方法,可以被排程執行;此時執行緒已經獲取執行所需的系統資源;但是此時的執行緒並不是正在執行,僅是具備被排程執行條件而已。

3.running (執行):執行緒被jvm的執行緒排程分配了cpu的執行時間。此時執行緒正在執行,隨時可能由jvm執行緒排程程式送回runnable狀態。

4.dead(終止/死亡):執行緒被jvm的執行緒排程程式收回了cpu的執行時間。處於dead狀態的執行緒不會再被排程執行。

5.blocked(阻塞):正在執行的執行緒因為各種原因被阻塞;發生的原因可能有:

執行緒進入synchronized();

執行緒呼叫wait()方法;

執行緒呼叫sleep()方法進入睡眠狀態;

執行緒呼叫join()方法,等待另執行緒執行完畢。

補充 以下情況可以終於當前的執行緒

run方法執行完成,執行緒正常結束

執行緒丟擲乙個未捕獲的異常或者是error

直接呼叫該執行緒的stop方法

2:狀態的轉換

2.1:yield():執行狀態 —> 就緒狀態

package dong.test;

public

class

theadtest

extends

thread

public

void

run() }}

public

static

void

main(string args)

}

執行結果:

thead#1: 10

thead#2: 10

thead#1: 20

thead#2: 20

thead#2: 30

thead#1: 30

thead#2: 40

thead#1: 40

thead#2: 50

thead#1: 50

thead#2: 60

thead#1: 60

thead#2: 70

thead#1: 70

thead#2: 80

thead#1: 80

thead#2: 90

thead#1: 90

thead#2: 100

thead#1: 100

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執行權之後,執行緒物件開始執...