多线程优先级
1.在java語言中,每個線程都有一個優先級,當線程調控器有機會選擇新的線程時,線程的優先級越高越有可能先被選擇執行,線程的優先級可以設置1-10,數字越大代表優先級越高
注意:Oracle為Linux提供的java虛擬機中,線程的優先級將被忽略,即所有線程具有相同的優先級。
所以,不要過度依賴優先級。
2.線程的優先級用數字來表示,默認范圍是1到10,即Thread.MIN_PRIORITY到Thread.MAX_PRIORTY.一個線程的默認優先級是5,即Thread.NORM_PRIORTY
3.如果cpu非常繁忙時,優先級越高的線程獲得更多的時間片,但是cpu空閑時,設置優先級幾乎沒有任何作用。
public class Thread03 {
public static void main(String[] args) {
Thread t1 = new Thread(() -> {
int count = 0;
for (; ; ) {
System.out.println(Thread.currentThread().getName() + “,” + count++);
}
}, “t1線程:”);
Thread t2 = new Thread(() -> {
int count = 0;
for (; ; ) {
System.out.println(Thread.currentThread().getName() + “,” + count++);
}
}, “t2線程:”);
t1.setPriority(Thread.MIN_PRIORITY);
t1.setPriority(Thread.MAX_PRIORITY);
t1.start();
t2.start();
}
}
總結
- 上一篇: 多线程yield
- 下一篇: sleep防止CPU占用100%