Java執行緒 執行緒狀態

2021-09-21 04:30:58 字數 844 閱讀 1624

執行緒可以建立6狀態:

new()新建立、runnable(可執行)、blocked(被阻塞)、 waiting(等待)、timed waiting(計時等待)、terminated(被終止)

1 新建執行緒

2 可執行執行緒

一旦呼叫start()方法,執行緒就處於runnable狀態,但是卻不必保持執行。執行中的執行緒中斷,目的是為了讓其他執行緒獲得執行機會。搶占式排程系統給每乙個可執行執行緒乙個時間片來執行任務。當時間片用完,會剝奪該執行緒的執行權,並給另乙個執行緒執行機會。當選擇下乙個程序時,會考慮執行緒的優先順序。

3 被阻塞執行緒和等待執行緒

如上圖所示,當乙個執行緒試圖獲取乙個內部物件鎖,而該鎖被其他執行緒持有,則該執行緒進入堵塞狀態。當所有其他執行緒釋放該鎖,並且執行緒排程器允許本執行緒持有時,變為非堵塞狀態。

當執行緒等待另乙個執行緒通知排程器乙個條件時,自己進入等待狀態。有幾個方法有乙個超時引數。呼叫它們導致執行緒進入計時等待狀態。這一狀態將一直保持到超時期滿或者接收到適當的通知。帶有超時引數的方法由thread.sleep, object.wait, thread.join, lock.trylock, condition.await的計時版。

當乙個堵塞或等待的執行緒被重新啟用時(例如,因超時期滿或成功獲得了乙個鎖),排程器會檢查是否比當前執行的執行緒有更高的優先順序。

4 被終止的執行緒

執行緒被終止的原因:

1) run方法正常退出而自然死亡。

2) 因為乙個沒有捕獲的異常終止了run方法而導致意外死亡。

當神已無能為力,那便是魔渡眾生

Java多執行緒 執行緒狀態

from 一.執行緒狀態型別 1.新建狀態 new 新建立了乙個執行緒物件。2.就緒狀態 runnable 執行緒物件建立後,其他執行緒呼叫了該物件的start 方法。該狀態的執行緒位於可執行執行緒池中,變得可執行,等待獲取cpu的使用權。3.執行狀態 running 就緒狀態的執行緒獲取了cpu,...

Java多執行緒 執行緒狀態

一.執行緒狀態型別 1.新建狀態 new 新建立了乙個執行緒物件。2.就緒狀態 runnable 執行緒物件建立後,其他執行緒呼叫了該物件的start 方法。該狀態的執行緒位於可執行執行緒池中,變得可執行,等待獲取cpu的使用權。3.執行狀態 running 就緒狀態的執行緒獲取了cpu,執行程式 ...

Java 執行緒狀態

乙個執行緒可以處於以下四種狀態 新建 new 當執行緒被建立時,它只會短暫的處於這種狀態.此時它已經分配了必須的系統資源,並執行了初始化.此刻執行緒已經有資格獲得cpu時間了,之後排程器將把這個執行緒 轉變位可執行狀態或阻塞狀態.就緒 runnable 在這種狀態下,只要排程器把時間片分配給執行緒,...