執行緒可以建立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 在這種狀態下,只要排程器把時間片分配給執行緒,...