所有線程都有優(yōu)先級。
優(yōu)先級由1到10之間的整數(shù)表示。
優(yōu)先級為1的線程優(yōu)先級最低。優(yōu)先級為10的線程具有最高優(yōu)先級。
在Thread類中定義了三個常量來表示下表中列出的三個不同的線程優(yōu)先級。
線程優(yōu)先級常量 | 整數(shù)值 |
---|---|
MIN_PRIORITY | 1 |
NORM_PRIORITY | 5 |
MAX_PRIORITY | 10 |
具有較高優(yōu)先級的線程應(yīng)該有更多的CPU時間。
線程的優(yōu)先級只是調(diào)度器的一個提示。
Thread類的setPriority()方法為線程設(shè)置了新的優(yōu)先級。
getPriority()方法返回線程的當(dāng)前優(yōu)先級。
創(chuàng)建線程時,其優(yōu)先級設(shè)置為創(chuàng)建線程的優(yōu)先級。
以下代碼演示如何設(shè)置和獲取線程的優(yōu)先級。
public class Main { public static void main(String[] args) { Thread t = Thread.currentThread(); System.out.println("main Thread Priority:" + t.getPriority()); Thread t1 = new Thread(); System.out.println("Thread(t1) Priority:" + t1.getPriority()); t.setPriority(Thread.MAX_PRIORITY); System.out.println("main Thread Priority:" + t.getPriority()); Thread t2 = new Thread(); System.out.println("Thread(t2) Priority:" + t2.getPriority()); // Change thread t2 priority to minimum t2.setPriority(Thread.MIN_PRIORITY); System.out.println("Thread(t2) Priority:" + t2.getPriority()); } }
上面的代碼生成以下結(jié)果。
更多建議: