1.就緒 (new)
執行緒物件已建立,但還啟動,所以還不能執行。
2.就緒(runnable)
執行緒物件呼叫starte方法後進入此狀態。進入這個狀態並不意味著在執行,它可能被阻塞或正執行。只要排程程式分給時間給執行緒,它就可以執行。
3.死亡(dead)
死亡線程通常方式是從run方法返回。
4.阻塞(blocked)
執行緒能夠執行,但某個條件阻止他的執行,當執行緒進入阻塞狀態時,排程機制將忽略該執行緒,不再分配給執行緒任何處理時間。直到進入就緒狀態,它才有執行的機會。
執行緒阻塞:
當乙個執行緒被阻塞時,可能有如下原因:
1.呼叫sleep方法
2.呼叫wait讓執行緒掛起,知道notify或notifall方法才讓它進入就緒狀態。
3.執行緒在等待某個輸入/輸出完成。
4.執行緒試圖在某個物件上呼叫其同步控制方法,但是物件鎖不可能。
sleep和wait
1.呼叫sleep的時候,鎖並沒有被釋放,呼叫wait方法,執行緒被掛起,鎖被釋放了。
2.wait、notify、notifyall是基類object的一部分,sleep是thread類的一部分。
執行緒的5種狀態
大體說一下執行緒的5種狀態 新建 就緒 執行 阻塞 死亡。新建狀態 new 執行緒剛剛建立,最初始的狀態。就緒狀態 runnable 執行緒建立完成後,並且執行的時機已經成熟,確定要執行了,但是還沒執行。沒有分配到cpu 執行狀態 running 線 真正正的獲得了cpu,然後執行相應的操作。帶啊跑...
執行緒的五種狀態
1.建立狀態,執行緒剛剛建立還未呼叫start方法。2.就緒狀態,呼叫start方法,還未搶到cpu執行權。3.執行狀態,搶到cpu執行權,執行run方法。4.阻塞狀態,包含sleep和wait 1 sleep使先執行緒處於睡眠狀態,期間讓出cpu使用權,不釋放資源。2 wait是執行緒處於等待狀態...
執行緒的五種狀態
1 新建狀態 new 當執行緒物件對建立後,即進入了新建狀態,如 thread t new mythread 2 就緒狀態 runnable 當呼叫執行緒物件的start 方法 t.start 執行緒即進入就緒狀態。處於就緒狀態的執行緒,只是說明此執行緒已經做好了準備,隨時等待cpu排程執行,並不是...