開始學時,感覺有些混亂,自己總結了一下: 1.
啟動執行緒
「start
」用來啟動
thread
物件,讓執行緒進入「等待執行」狀態,而不是執行狀態。通過
cpu排程,從等待狀態轉到執行狀態,而我們無法執行**執行緒的執行時間和順序。
2.暫停執行緒(1
)sleep
方法當呼叫這個方法後,執行緒物件會進入「阻塞狀態」,直到暫停的時間到了後,才會轉移到等待執行狀態。
注意:當系統睡醒後,不是立刻進入執行狀態,而是進入等待狀態,等待系統挑選後,才能繼續執行,所以讓
thread
物件睡1
秒鐘,只是保證這個
thread
至少會停留這麼長的時間。(2
)yield
方法呼叫這個方法後,
thread
物件會立刻暫停執行,並直接從執行態轉向「等待執行狀態」。
有時可能立刻又被系統挑中,進入執行狀態。
(
3)join
方法當乙個系統中有好幾個
thread
在執行時,有時某個執行緒甲要等待另乙個執行緒乙完成某件事情,甲才能繼續下去,這時要用
join
方法。注意,是甲和乙之間簽訂協議,甲乙都必須遵守,但要有乙個
thread
丙,丙則不必遵守。
關於windows執行緒的各種狀態
由於不同程序中的執行緒可能併發執行,因而windows支援程序間的併發性。此外,同乙個程序中的多個執行緒可以分配給不同的處理器並且同時執行。乙個含有多執行緒的程序在實現併發時,不需要使用多程序的開銷。同乙個程序中的執行緒可以通過它們的公共位址空間交換資訊,並訪問程序中的共享資源,不同程序中的執行緒可...
執行緒池 關於執行緒池的五種狀態
在threadpoolexecutor類中定義了執行緒的五種狀態表示,通過atomicinteger 的高三位來表示執行緒的狀態 private static final int count bits integer.size 3 private static final int running 1...
Java執行緒 執行緒狀態
執行緒可以建立6狀態 new 新建立 runnable 可執行 blocked 被阻塞 waiting 等待 timed waiting 計時等待 terminated 被終止 1 新建執行緒 2 可執行執行緒 一旦呼叫start 方法,執行緒就處於runnable狀態,但是卻不必保持執行。執行中的...