Java(8-1-x)

我們上次介紹了關於線程的創建和使用,並解釋了只要有sleep就要捕獲錯誤的原因。這一次,我們需要介紹一些建成的理論知識,可能有些枯燥,但確實必要。

Part 1 線程的狀態:

線程的狀態有6種,(1)New,新創建;(2)Runnable,可運行;(3)Blocked,被阻塞;(4)Waiting,等待;(5)Timed waiting,計時等待;(6)Terminated,被終止,如果我們要確定一個線程的狀態,可以調用getState方法。

(1)New,新創建:
當用new操作符創建一個新線程時,如new Thread(r),該線程還沒有開始運行。這意味着他的狀態是new。

(2)Runnable,可運行線程:
一旦調用start方法,線程處於runnable狀態。一個可運行的線程可能在運行,也可能沒有運行,這取決於操作系統給線程提供的運行時間,記住這點!

(3)Blocked,被阻塞 和 Waiting,等待線程:
當線程處於被阻塞或等待狀態時,它暫時不活動。就是說,他不運行任何代碼且消耗最少的資源,知道線程重新激活它。

(4)Terminated,被終止線程:
線程的終止會有如下兩個原因: 1.因爲run方法正常退出而自然死亡。
2.因爲一個沒有捕獲的異常終止了run方法而意外死亡。

Part 2 線程屬性:

線程的優先級:在Java中,每一個線程有一個優先級。默認情況下,一個線程繼承他的副線程的優先級。可以用serPriority方法提高或降低任何一個線程的優先級。可以將優先級設置爲在MIN_PRIORITY(在Thread類中定義爲1)與 MAX_PRIORITY(定義爲10)之間的任何值。NORM_PRIORITY被定義爲5。

守護線程:可以通過調用 t.setDaemon(true) 將線程轉化爲守護線程。守護線程唯一的用途就是爲其他線程提供服務。

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