線程的狀態

要想實現多線程,必須在主線程中創建新的線程對象。任何線程對象一般都有5中狀態,即創建、就緒、運行、阻塞、終止。線程狀態的轉移與方法之間的關係如下圖:

Created with Raphaël 2.1.0開始就緒狀態阻塞狀態?阻塞解除運行狀態終止yesno

運行狀態分析
1. 創建狀態
在程序中用構造方法創建了一個線程對象後,新的線程對象就處於新建狀態,此時,它就有了相應的內存空間和其他資源,但是還處於不可運行的狀態,新建一個線程對象可用Thread類的構造方法來實現,也可以使用實現Runnable接口來實現。
2. 就緒狀態
新建線程對象後,調用該線程的start()方法既可以啓動該線程了。當線程啓動時,線程進入就緒狀態,此時線程將進入程序隊列中,等待CPU服務。
3. 運行狀態
當就緒狀態的線程被調用並獲得處理器資源時,線程就進入了運行狀態。此時,自動調用該線程對象的run()方法,run()方法定義了該線程的操作和功能,
4. 堵塞狀態
一個正在執行的線程在某些特定的情況下,如被人爲掛起或需要執行耗時的操作時,會讓出CPU並暫時中止自己的操作,進入阻塞狀態。在可執行狀態下,如果調用sleep()、suspend()、wait()等方法,線程都可以進入堵塞狀態。堵塞時,線程不能進入排隊隊列,只用引起堵塞的原因被消除之後,線程再能進入就緒狀態。
5. 死亡狀態
線程調用stop()方法時或run()方法執行結束後,即處於死亡狀態。處於死亡狀態的線程不具有繼續運行的能力。

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