下拉框筆記
阿新 • • 發佈:2021-01-28
執行緒優先順序
Java提供一個執行緒排程器來監控程式中啟動後進入就緒狀態的所有執行緒,執行緒排程器按照優先順序決定應該排程哪個執行緒來執行。
執行緒的優先順序用數字表示,範圍是1~10,預設優先順序是5,公平競爭。
使用getPriority().setPriorty(int xxx)方法可以獲取優先順序。
優先順序高的並不一定就一定先跑,但大多情況下會先執行。優先順序低只意味獲得排程的概率低,並不是優先順序低就不會被呼叫,這都誰看CPU的排程
public class 執行緒優先順序 {
public static void main(String[] args) {
//主執行緒優先順序
System.out.println(Thread.currentThread().getName()+"-->"+Thread.currentThread().getPriority());
MyPriority mp = new MyPriority();
Thread t0 = new Thread(mp);
Thread t1 = new Thread(mp);
Thread t2 = new Thread(mp);
Thread t3 = new Thread(mp);
Thread t4 = new Thread(mp);
Thread t5 = new Thread(mp);
//先設定優先順序。再啟動!
t0.start();
t1.setPriority(1);
t1.start();
t2.setPriority(2);
t2.start();
t3.setPriority(3);
t3.start();
t4.setPriority(Thread.MAX_PRIORITY); //設定最大優先順序 10
t4.start();
t5.setPriority(5);
t5.start();
}
}
class MyPriority implements Runnable{
public void run() {
System.out.println(Thread.currentThread().getName()+"-優先順序為->"+Thread.currentThread().getPriority());
}
}