Java線程狀態及Thread類中的主要方法

jopen 10年前發布 | 161K 次閱讀 Java Java開發

要想實現多線程,就必須在主線程中創建新的線程對象.

任何線程一般具有5種狀態,即創建,就緒,運行,阻塞,終止.

創建狀態:

在程序中用構造方法創建了一個線程對象后,新的線程對象便處于新建狀態,此時,他已經有了相應的內存空間和其他資源,但還處于不可運行狀態.

就緒狀態:

新建線程對象后,調用該線程的start()方法可以啟動線程.當線程啟動時,線程進入就緒狀態.此時,線程將進入線程隊列排隊,等待CPU服務,這表明它已經具備了運行條件.-------(運行start()方法只是進入就緒狀態,并沒有開始運行.)

運行狀態:

當就緒狀態的線程被調用并獲得處理器資源時,線程就進入了運行狀態.此時,自動調用該現場對象的run()方法.run()方法定義了該線程的操作和功能.

堵塞狀態:

一個正在執行的線程在某些特殊情況下(執行耗時操作或調用sleep(),suspend(),wait()等方法),會讓出CPU并暫時中止自己的執行,進入堵塞狀態.堵塞時,線程不能進入排隊隊列,只有當引起堵塞的原因被消除后,線程才可以轉入就緒狀態.

終止狀態:

線程調用stop()方法時或run()方法執行結束后,即處于死亡狀態.


狀態圖:

20140710155314968.jpg


Thread類中的主要方法:

join()方法:讓一個線程強制運行,線程強制運行期間,其他線程無法運行,必須等到此線程完成之后才可以繼續執行.

setDaemon():設置線程為后臺線程,這樣即使Java進程結束了,后臺線程依然會繼續執行.


20140710151855337.jpg

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!