多執行緒 之執行緒的生命週期
阿新 • • 發佈:2018-11-06
執行緒是存在生命週期的。執行緒的生命週期分為五種狀態:
1.新建狀態
當執行緒使用new 關鍵字建立了一個執行緒以後,執行緒就出於新建狀態。和其他物件一樣,僅僅被分配記憶體,並初始化成員變數的值。
2.準備狀態
當執行緒呼叫start()方法後進入準備狀態。由cpu來決定哪個執行緒進入執行狀態。
注意:
1.執行緒從新建狀態進入到準備狀態後,不可能在進入新建狀態。
2.在等待/阻塞的執行緒被解除後,不能直接進入執行狀態,而是進入準備狀態。
3.首先進入準備狀態的執行緒,由系統決定哪一個先進入執行狀態、
3.執行狀態
出於準備狀態的執行緒被cpu選中進入執行狀態,在執行狀態中執行run()方法中的執行體。
在執行狀態下可能被cpu中的排程程式排程到準備狀態。
在單核cpu中只有一個執行緒在執行,在多核cpu中有多個執行緒在執行。
4.等待/阻塞狀態
執行緒中有很多執行緒排程的方法,包括睡眠、阻塞、掛起和等待,這些方法會使得正在執行的方法處於等待/阻塞狀態,
這些等待/阻塞狀態的執行緒被解除後,不會立即回到執行狀態,而是進入準備狀態,等待系統的排程。
5.死亡狀態
當執行緒的run()方法執行結束後,或者程式發生異常終止執行後,執行緒就會進入死亡狀態。
處於死亡狀態的執行緒就不能在使用start()方法啟動執行緒,