Java并行-6.線程優(yōu)先級(jí)

  • 線程可以有自己的優(yōu)先級(jí),優(yōu)先級(jí)高的線程在競(jìng)爭(zhēng)資源時(shí)會(huì)更有優(yōu)勢(shì),但是這不是絕對(duì)的。
  • Java線程優(yōu)先級(jí)整型成員變量priority來標(biāo)識(shí),范圍從1到10,數(shù)字越大優(yōu)先級(jí)越高。其中有三個(gè)靜態(tài)標(biāo)量:
public final static int MIN_PRIORITY = 1;
public final static int NORM_PRIORITY = 5;
public final static int MAX_PRIORITY = 10;

以下代碼可以展示優(yōu)先級(jí)高的線程傾向于更快完成:

package temp;

public class PriorityDemo {
    public static class HighPriority extends Thread{
        static int count = 0;
        public void run() {
            while(true) {
                synchronized(PriorityDemo.class){
                    count++;
                    if(count > 10000000) {
                        System.out.println("HighPriority is complete!");
                        break;
                    }
                }
            }
        }
    }
    
    public static class LowPriority extends Thread{
        static int count = 0;
        public void run() {
            while(true) {
                synchronized(PriorityDemo.class) {
                    count++;
                    if(count > 10000000) {
                        System.out.println("lowPriority is complete!");
                        break;
                    }
                }
            }
        }
    }
    
    public static void main(String[] args) throws InterruptedException{
        Thread high = new HighPriority();
        LowPriority low = new LowPriority();
        high.setPriority(Thread.MAX_PRIORITY);
        low.setPriority(Thread.MIN_PRIORITY);
        low.start();
        high.start();
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容