多執行緒 執行緒優先順序

2021-09-14 05:27:58 字數 1101 閱讀 4880

目錄

1、執行緒優先順序具有繼承性

2、執行緒優先順序的作用

thread類原始碼中定義:

最低優先順序為1

public final static int min_priority = 1;

一般沒有繼承,沒有顯示指定優先順序時,預設優先順序為5

public final static int norm_priority = 5;

最高優先順序為10

public final static int max_priority = 10;

當執行緒a啟動b執行緒的時候,b執行緒相當於子執行緒,a為父執行緒,那麼b執行緒會繼承a的優先順序,a優先順序=b優先順序。如果不想繼承優先順序,可以設定優先順序,setpriority();

class a extends thread

}class b extends thread

優先順序越高的執行緒,cpu越是盡量將資源給這個執行緒,但是並不代表優先順序高,就要等著把優先順序高的執行緒執行完了才會去執行優先順序低的執行緒,不是這樣的,只是說cpu會盡量執行高優先順序執行緒,低優先順序執行緒也有機會得到執行,只是機會少一些。

假如兩個執行緒,優先順序相差越大,這種被執行的差距就越大,優先順序相差小的時候,這種被執行的差距就小一些。

舉個例子說明:

下面有兩個內容一樣的執行緒,只是優先順序設定不一樣,乙個是1,乙個是9.

public class lowthread extends thread 

@override

public void run()

}}public class highthread extends thread

@override

public void run()

}}public static void main(string args) throws interruptedexception

這個執行緒的執行時在電腦比較閒的情況下測試的,測試了好多次,9級執行緒的count總是大於1級執行緒的count。

說明:高優先順序執行緒被執行的時間總是大於低優先順序的執行緒,就是優先順序高,被執行的機會大。

java多執行緒 執行緒優先順序

1 min priority 10 max priority 5 norm priority 如果不設定預設值為5 例項package threadtest class threadrun implements runnable catch interruptedexception e public...

多執行緒 12 優先順序

優先順序 priority 在多個執行緒同時執行時,執行緒的排程器會根據執行緒的優先順序,優先呼叫級別高的執行緒,優先調用不代表絕對的前後順序,執行緒級別高的先呼叫的概率就大,執行緒級別低的先呼叫的概率就小,就相當買彩票,優先順序低的相當買一張彩票,優先順序高的相當於買一百張,所以優先順序只代表乙個...

C 多執行緒 優先順序

在我的公司這裡,因為要跟很多特殊的裝置打交道,所以會用到多執行緒的東西,那麼我們在進行多執行緒處理的時候,怎麼去設定優先順序 執行緒裡有個屬性priority可以用來設定優先順序,我設定執行緒1的優先順序高於執行緒2的優先順序,那麼執行緒1就會比執行緒2多執行一段時間,這個是人眼觀察不出來的 執行速...