1. 程式人生 > >Java--執行緒的分類和生命週期

Java--執行緒的分類和生命週期

Java中的執行緒分為兩類: 一種是守護執行緒 一種是使用者執行緒 它們在幾乎的每個方面都是相同的,唯一的區別是判斷JVM何時離開 守護執行緒是用來服務使用者執行緒的,通過在start()方法前呼叫thread.setDaemon(true)可以把一個使用者執行緒變成一個守護執行緒。 Java垃圾回收就是一個典型的守護執行緒。 若JVM都是守護執行緒,當前JVM將退出。 執行緒的生命週期; 要想實現多執行緒,必須在主執行緒中建立新的執行緒物件,Java語言使用Thread類及其子類的物件來表示執行緒,在它的一個完整的生命週期中 通常要經歷如下的五種狀態: 新建:當一個Thread類及其子類的物件被宣告並建立時,新生的執行緒物件處於新建狀態。 就緒:處於新建狀態的執行緒被start()後,將進入執行緒佇列等待CPU時間片,此時他已具備了執行的條件。 執行:當就緒的執行緒被排程並獲得處理器資源的時候run()方法定義了執行緒的操作和功能。 阻塞:在某種特殊情況下 ,被人為掛起時或執行輸入輸出操作時,讓出CPU並臨時終止自己的執行,進入阻塞狀態。 死亡:執行緒完成了它的全部工作或執行緒被提前強制性地終止。