線程的四種狀態

一個線程可以有四種狀態:

(1) 新(New):線程對象已經創建,但尚未啓動,所以不可運行。


(2) 可運行(Runnable):意味着一旦時間分片機制有空閒的CPU週期提供給一個線程,那個線程便可立即開始運行。因此,線程可能在、也可能不在運行當中,但一旦條件許可,沒有什麼能阻止它的運行——它既沒有“死”掉,也未被“堵塞”。


(3) 死(Dead):從自己的run()方法中返回後,一個線程便已“死”掉。亦可調用stop()令其死掉,但會產生一個違例——屬於Error的一個子類(也就是說,我們通常不捕獲它)。記住一個違例的“擲”出應當是一個特殊事件,而不是正常程序運行的一部分。所以不建議你使用stop()(在Java 1.2則是堅決反對)。另外還有一個destroy()方法(它永遠不會實現),應該儘可能地避免調用它,因爲它非常武斷,根本不會解除對象的鎖定。


(4) 堵塞(Blocked):線程可以運行,但有某種東西阻礙了它。若線程處於堵塞狀態,調度機制可以簡單地跳過它,不給它分配任何CPU時間。除非線程再次進入“可運行”狀態,否則不會採取任何操作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章