第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于Java中進程中的優(yōu)先級的一點疑問

關于Java中進程中的優(yōu)先級的一點疑問

胡說叔叔 2019-03-22 19:19:28
public class BasicThreadTest extends Thread{     private String _name;     public BasicThreadTest(String name){         _name = name;     }          public void run(){         try{             for(int i = 0; i < 30; i++){                 System.out.println("run ... " + _name + " ... " + i);             }         }catch(Exception e){             e.printStackTrace();         }     }     public static void main(String[] args){         BasicThreadTest th1 = new BasicThreadTest("A");         th1.setPriority(7);         th1.start();                  BasicThreadTest th2 = new BasicThreadTest("B");         System.out.println(th2.getPriority());         th2.start();     } } 在上述代碼中,為線程A設置優(yōu)先級為7,而線程B優(yōu)先級默認為5。線程A的優(yōu)先級高于線程B,理論上講,應該改是A全部執(zhí)行完成之后,才能執(zhí)行B。但是實際運行結果為什么是這樣的呢?5 run ... A ... 0 run ... A ... 1 run ... A ... 2 run ... A ... 3 run ... A ... 4 run ... A ... 5 run ... A ... 6 run ... A ... 7 run ... A ... 8 run ... B ... 0 run ... A ... 9 run ... B ... 1 run ... A ... 10 run ... A ... 11 run ... A ... 12 run ... A ... 13 run ... A ... 14 run ... B ... 2 run ... A ... 15 run ... A ... 16 run ... B ... 3 run ... B ... 4 run ... B ... 5 run ... B ... 6 run ... A ... 17 run ... B ... 7 run ... A ... 18 run ... B ... 8 run ... A ... 19 run ... B ... 9 run ... A ... 20 run ... B ... 10 run ... A ... 21 run ... B ... 11 run ... A ... 22 run ... B ... 12 run ... A ... 23 run ... B ... 13 run ... A ... 24 run ... B ... 14 run ... A ... 25 run ... B ... 15 run ... A ... 26 run ... B ... 16 run ... A ... 27 run ... B ... 17 run ... A ... 28 run ... B ... 18 run ... A ... 29 run ... B ... 19 run ... B ... 20 run ... B ... 21 run ... B ... 22 run ... B ... 23 run ... B ... 24 run ... B ... 25 run ... B ... 26 run ... B ... 27 run ... B ... 28 run ... B ... 29 多運行幾次的結果有時會在線程A全部執(zhí)行之后,線程B再執(zhí)行;有時會出現交錯的情況。 不是很理解優(yōu)先級在這里好像沒體現出作用,為什么呢?
查看完整描述

8 回答

?
森林海

TA貢獻2011條經驗 獲得超2個贊

這個在深入理解jvm中有介紹,具體數字記不清,原理是這樣的,jvm為線程提供了大概9個優(yōu)先級,但是不同的操作系統(tǒng)提供的優(yōu)先級等級也不同,windows沒到9個,linux比較多,solaris比linux還要多,而且線程或進程的調度是交由操作系統(tǒng)cpu調度策略調度的,如果你是windows操作系統(tǒng),假如它只提供了兩種優(yōu)先級,那么你設置的jvm優(yōu)先級1~4可能映射到操作系統(tǒng)的1優(yōu)先級,而5~9映射到操作系統(tǒng)的2優(yōu)先級,所以1~4的效果是一樣的,5~9的效果是一樣的。
這個問題在深入理解jvm中,多線程優(yōu)化那部分有介紹!

查看完整回答
反對 回復 2019-04-29
?
Helenr

TA貢獻1780條經驗 獲得超4個贊

優(yōu)先級只是在競爭資源時有優(yōu)先的作用,沒有資源競爭,當然什么都看不出來


查看完整回答
反對 回復 2019-04-29
?
料青山看我應如是

TA貢獻1772條經驗 獲得超8個贊

只有當系統(tǒng)資源被其它程序所占用完,沒有釋放的時候,線程才會考慮優(yōu)先級,才會讓級別越高的越先執(zhí)行。資源充足的時候不沒有優(yōu)先級的概念的。


查看完整回答
反對 回復 2019-04-29
?
炎炎設計

TA貢獻1808條經驗 獲得超4個贊

所謂優(yōu)先級并不是指線程執(zhí)行的順序,一般可認為是CPU時間片的分配大小。


查看完整回答
反對 回復 2019-04-29
?
慕雪6442864

TA貢獻1812條經驗 獲得超5個贊

與線程休眠類似,線程的優(yōu)先級仍然無法保障線程的執(zhí)行次序。只不過,優(yōu)先級高的線程獲取CPU資源的概率較大,優(yōu)先級低的并非沒機會執(zhí)行。


查看完整回答
反對 回復 2019-04-29
?
12345678_0001

TA貢獻1802條經驗 獲得超5個贊

線程的優(yōu)先級高的線程比線程優(yōu)先級低的線程將獲得更多CPU時間,但不代表優(yōu)先級高的一定比優(yōu)先級低的先執(zhí)行完。


查看完整回答
反對 回復 2019-04-29
?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

如果公司的廁所有3個坑,這時候大boss和一個普通員工同時進入廁所,不用考慮什么職位高低,一起進去爽吧,但是如果大boss和5個普通員工同時進入廁所,我猜肯定是讓大boss先選一個舒服的坑吧,然后其他5個員工pk剩下的2個坑


查看完整回答
反對 回復 2019-04-29
?
MMTTMM

TA貢獻1869條經驗 獲得超4個贊

首先,標題就有錯,你問的是線程的優(yōu)先級。
其次,程序中不能依靠設定線程優(yōu)先級的高低來確定線程先后的執(zhí)行順序,因為這個最終是由操作系統(tǒng)調度實現的,一般操作系統(tǒng)不會保證優(yōu)先級高的線程一定在優(yōu)先級低的線程之前執(zhí)行。

查看完整回答
反對 回復 2019-04-29
  • 8 回答
  • 0 關注
  • 523 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號