在Java中,線程的優先級可以通過Thread
類的setPriority(int priority)
方法進行設置。優先級是一個整數,其值在1到10之間,其中10是最高優先級,1是最低優先級。默認優先級是5。
以下是如何設置線程優先級的示例:
public class PriorityExample {
public static void main(String[] args) {
// 創建兩個線程
Thread thread1 = new Thread(() -> {
for (int i = 0; i < 5; i++) {
System.out.println("Thread 1: " + i);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
Thread thread2 = new Thread(() -> {
for (int i = 0; i < 5; i++) {
System.out.println("Thread 2: " + i);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
// 設置線程優先級
thread1.setPriority(Thread.MIN_PRIORITY); // 設置為最低優先級
thread2.setPriority(Thread.MAX_PRIORITY); // 設置為最高優先級
// 啟動線程
thread1.start();
thread2.start();
}
}
在這個示例中,我們創建了兩個線程thread1
和thread2
。我們將thread1
的優先級設置為最低(1),將thread2
的優先級設置為最高(10)。然后我們啟動這兩個線程。
需要注意的是,線程優先級并不能保證線程執行的順序。線程調度器可能會根據其他因素(如操作系統的線程調度策略)來決定線程的執行順序。因此,即使設置了線程優先級,也不能保證高優先級的線程總是在低優先級的線程之前執行。