執行緒的優先順序&&守護執行緒
阿新 • • 發佈:2020-08-17
一、執行緒的優先順序
java 提供了一個執行緒排程器來監控程式種啟動後進入就緒狀態的所有執行緒,執行緒排程器按照執行緒的優先順序決定應該排程哪個執行緒來執行,優先順序高的被優先排程。
優先順序用數字來表示,範圍從 1 到 10:
- Thread.MIN_ PRIORITY = 1;
- Thread.MAX_ PRIORITY = 10;
- Thread.NORM_PRIORITY = 5.
優先順序的設定,建議在 start() 方法的呼叫之前進行設定。
設定方式就是 new 出線程之後:
t.setPriority(Thread.MAX_PRIORITY);
注意:
優先順序高只是意味著獲得排程的概率高,並不是會絕對優先排程他,還是那句話,排程是CPU決定的。
二、守護執行緒
執行緒分為:使用者執行緒和守護執行緒。
虛擬機器必須保護使用者執行緒執行完畢;而不用等待守護執行緒執行完畢。
而 預設情況下,我們寫出的執行緒,都是使用者執行緒,也就是說,虛擬機器會一直等到執行完畢。
執行緒類提供了方法,可以設定某一個執行緒為守護執行緒:
t.setDaemon(true);//將使用者執行緒調整為守護執行緒
Daemon單詞意思是希臘神話裡的一個精靈。
一般守護執行緒就是類似後臺的操作日誌、監控記憶體使用等執行緒。