java多線程之線程的優先順序

來源:互聯網
上載者:User

標籤:java   多線程   線程   線程優先順序   

在作業系統中,線程可以劃分優先順序,優先順序較高的線程得到CPU資源較多,也就是CPU優先執行優先順序較高的線程對象中的任務(其實並不是這樣)。

在java中,線程的優先順序用setPriority()方法就行,線程的優先順序分為1-10這10個等級,如果小於1或大於10,則拋出異常throw new IllegalArgumentException(),預設是5。

public class MyThread1 extends Thread {@Overridepublic void run() {long startTime=System.currentTimeMillis();long addResult=0;for (int i = 0; i < 1000000; i++) {new Random().nextInt();addResult+=i;}long endTime=System.currentTimeMillis();System.out.println("thread1 use time--->"+(endTime-startTime));}}

public class MyThread2 extends Thread {@Overridepublic void run() {long startTime=System.currentTimeMillis();long addResult=0;for (int i = 0; i < 1000000; i++) {new Random().nextInt();addResult+=i;}long endTime=System.currentTimeMillis();System.out.println("thread2 use time--->"+(endTime-startTime));}}

public class MyThread{public static void main(String[] args){for (int i = 0; i < 5; i++) {MyThread1 t1=new MyThread1();t1.setPriority(10);t1.start();MyThread2 t2=new MyThread2();t2.setPriority(1);t2.start();}}}



從結果中可以發現,也有thread2比thread1先執行完,也就驗證了線程的優先順序於代碼執行順序無關。

public class MyThread{public static void main(String[] args){for (int i = 0; i < 5; i++) {MyThread1 t1=new MyThread1();t1.setPriority(6);t1.start();MyThread2 t2=new MyThread2();t2.setPriority(5);t2.start();}}


如果我們把優先順序設定近點的話,發現優先順序較高的線程不一定沒一次都執行完,線程的優先順序與列印的順序無關,不要將這兩點的關係相關聯,他們的關係是不確定性和隨機性。

線程的優先順序仍然無法保障線程的執行次序。只不過,優先順序高的線程擷取CPU資源的機率較大,優先順序低的並非沒機會執行。

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

java多線程之線程的優先順序

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.