java執行緒的狀態

2021-07-13 05:13:20 字數 660 閱讀 9153

new 狀態是指執行緒剛建立, 尚未啟動

runnable 狀態是執行緒正在正常執行中, 當然可能會有某種耗時計算/io等待的操作/cpu時間片切換等, 這個狀態下發生的等待一般是其他系統資源, 而不是鎖, sleep等

blocked 這個狀態下, 是在多個執行緒有同步操作的場景, 比如正在等待另乙個執行緒的synchronized 塊的執行釋放, 或者可重入的 synchronized塊裡別人呼叫wait() 方法, 也就是這裡是執行緒在等待進入臨界區

waiting 這個狀態下是指執行緒擁有了某個鎖之後, 呼叫了他的wait方法, 等待其他執行緒/鎖擁有者呼叫 notify / notifyall 一遍該執行緒可以繼續下一步操作, 這裡要區分 blocked 和 wating 的區別, 乙個是在臨界點外面等待進入, 乙個是在理解點裡面wait等待別人notify, 執行緒呼叫了join方法 join了另外的執行緒的時候, 也會進入waiting狀態, 等待被他join的執行緒執行結束

timed_waiting 這個狀態就是有限的(時間限制)的waiting, 一般出現在呼叫wait(long), join(long)等情況下, 另外乙個執行緒sleep後, 也會進入timed_waiting狀態

terminated 這個狀態下表示 該執行緒的run方法已經執行完畢了, 基本上就等於死亡了(當時如果執行緒被持久持有, 可能不會被**)

Java執行緒 執行緒狀態

執行緒可以建立6狀態 new 新建立 runnable 可執行 blocked 被阻塞 waiting 等待 timed waiting 計時等待 terminated 被終止 1 新建執行緒 2 可執行執行緒 一旦呼叫start 方法,執行緒就處於runnable狀態,但是卻不必保持執行。執行中的...

java執行緒的狀態

新建 mythreadinfo 類,列印執行緒物件屬性,如下 public class mythreadinfo extends thread public static void main string args 執行 列印如下 mythreadinfo 的執行緒例項正在執行任務 mythread...

Java 執行緒狀態

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