執行緒的優先順序案例講解

2021-10-19 09:54:06 字數 1604 閱讀 9528

執行緒優先順序意義

執行緒的優先順序告訴程式該執行緒的重要程度有多大。如果有大量執行緒都被堵塞,都在等候執行,程式會盡可能地先執行優先順序的那個執行緒。 但是,這並不表示優先順序較低的執行緒不會執行。若執行緒的優先順序較低,只不過表示它被准許執行的機會小一些而已。

舉例:就像車站買票 旁邊會有牌子提示「軍人優先」

就像併發執行時候,cpu分出小塊時間片,執行緒優先順序高的執行緒更容易獲取時間片

執行緒優先順序分類

執行緒的優先順序設定可以為1-10的任一數值,thread類中定義了三個執行緒優先順序,分別是:min_priority(1)、norm_priority(5)、max_priority(10),一般情況下推薦使用這幾個常量,不要自行設定數值。

預設優先順序5 最小1 最大10

預設優先順序案例

/**

* 執行緒優先順序demo

*/public class prioritydemo catch (interruptedexception e)

}},"執行緒1");

thread thread2 = new thread(()-> catch (interruptedexception e)

}},"執行緒2");

thread1.start();

thread2.start();}}

預設優先順序下,每個執行緒都有可能先獲取資源

設定執行緒優先順序案例

public class prioritydemo 

},"執行緒1");

thread thread2 = new thread(()->

},"執行緒2");

thread1.setpriority(thread.min_priority);

thread2.setpriority(thread.max_priority);

thread1.start();

thread2.start();}}

可以看到大部分輸出執行緒2,執行緒1也是會獲取到

不同平台,對執行緒的優先順序的支援不同。 程式設計的時候,不要過度依賴執行緒優先順序,如果你的程式執行是否正確取決於你設定的優先順序是否按所設定的優先順序執行,那這樣的程式不正確

任務: 快速處理:設定高的優先順序 慢慢處理:設定低的優先順序

候,不要過度依賴執行緒優先順序,如果你的程式執行是否正確取決於你設定的優先順序是否按所設定的優先順序執行,那這樣的程式不正確**

任務: 快速處理:設定高的優先順序 慢慢處理:設定低的優先順序

執行緒優先順序

執行緒優先順序由執行緒所屬程序的優先順序類 執行緒自身的相對優先級別共同確定,二者組合值作為執行緒的基優先順序。base priority level win32系統中,執行緒基優先順序的範圍從最低優先順序0到最高優先順序31。系統優先順序程式優先順序類別 執行緒優先順序等級 1idle prior...

執行緒優先順序

優先順序是執行緒排程的重要依據。優先順序高的執行緒,永遠先獲得cpu的青睞。當然啦,作業系統會視情況調整各個執行緒的優先順序。例如前台執行緒的優先順序應該調高一些,後台執行緒的優先順序應該調低一些。執行緒的優先順序範圍從0 最低 到31 最高 當你產生執行緒時,並不是直接以數值指定其優先順序,而是採...

執行緒優先順序

知識點 執行緒優先順序 獲取當前執行緒控制代碼 執行緒優先順序設定 執行緒優先順序變動 執行緒優先順序獲取 一 執行緒優先順序 thread priority 簡單的說就是 執行緒 的優先順序越高,那麼就可以分佔相對多的cpu時間片。每個程序都有相應的優先順序,優先順序決定它何時執行和占用 cpu ...