日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

【Java多线程】线程优先级:优先级高,执行机会多

發布時間:2024/2/28 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Java多线程】线程优先级:优先级高,执行机会多 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

常用的優先級

一般來說,優先級的范圍為1-10,但在個別的操作系統上有所不同。
優先級高的線程,在運行的時候將會獲得更多的運行機會。

代碼

package cn.hanquan.test;import java.io.FileNotFoundException;/** 優先級高的線程 獲得更多的運行機會*/public class TestP {public static void main(String[] args) throws InterruptedException, FileNotFoundException {// 我的線程類MyP mp = new MyP();// 建立線程數組Thread t1 = new Thread(mp);Thread t2 = new Thread(mp);t1.setPriority(1);t2.setPriority(10);t1.start();t2.start();} }class MyP implements Runnable {@Overridepublic void run() {Thread.yield();for (int i = 0; i < 100; i++) {System.out.println(Thread.currentThread().getName() + " --> Priority " + Thread.currentThread().getPriority());}} }

運行結果

Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-1 --> Priority 10 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-0 --> Priority 1 Thread-0 --> Priority 1

附:之前錯誤的理解,留著沒刪,是因為里面有建立線程數組的方式,可能會用到。

錯誤之處在于:線程的優先級體現在獲得運行的概率上,而不是體現在開始運行的順序上。

package cn.hanquan.test;import java.io.FileNotFoundException;/** 線程優先級的是 優先級高的先運行的概率大*/public class TestP {public static void main(String[] args) throws InterruptedException, FileNotFoundException {// 我的線程類MyP mp = new MyP();// 建立線程數組Thread[] t = new Thread[100];// 設定線程優先級for (int i = 0; i < 50; i++) {t[i] = new Thread(mp);t[i].setPriority(1);// MIN_PRIORITY}for (int i = 50; i < 100; i++) {t[i] = new Thread(mp);t[i].setPriority(10);// MAX_PRIORITY}// 開啟線程 這里開啟的順序對實際線程的開始順序也有一定的影響// sxt300級中沒有使用數組 好像就沒有這種影響?for (int i = 0; i < 100; i++) {t[i].start();}} }class MyP implements Runnable {@Overridepublic void run() {Thread.yield();System.out.println(Thread.currentThread().getName() + " --> Priority " + Thread.currentThread().getPriority());}}

運行結果

運行結果并沒有完全符合預期

但是如果把30行的遞增序改為遞減序,幾乎每一次都是優先級為10的線程先運行,優先級為1的線程后運行,這樣大概可以說明線程優先級對于運行順序的的影響。

總結

以上是生活随笔為你收集整理的【Java多线程】线程优先级:优先级高,执行机会多的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。