package cn.itcast_04;
public class ThreadPriority extends Thread {
@Override
public void run() {
for (int x = 0; x < 100; x++) {
System.out.println(getName() + ":" + x);
}
}
}
package cn.itcast_04;
/*
* 我們的執行緒沒有設定優先順序,肯定有預設優先順序。
* 那麼,預設優先順序是多少呢?
* 如何獲取執行緒物件的優先順序?
* public final int getPriority():返回執行緒物件的優先順序
* 如何設定執行緒物件的優先順序呢?
* public final void setPriority(int newPriority):更改執行緒的優先順序。
*
* 注意:
* 執行緒預設優先順序是5。
* 執行緒優先順序的範圍是:1-10。
* 執行緒優先順序高僅僅表示執行緒獲取的 CPU時間片的機率高,但是要在次數比較多,或者多次執行的時候才能看到比較好的效果。
*
* IllegalArgumentException:非法引數異常。
* 丟擲的異常表明向方法傳遞了一個不合法或不正確的引數。
*
*/
public class ThreadPriorityDemo {
public static void main(String[] args) {
ThreadPriority tp1 = new ThreadPriority();
ThreadPriority tp2 = new ThreadPriority();
ThreadPriority tp3 = new ThreadPriority();
tp1.setName("東方不敗");
tp2.setName("嶽不群");
tp3.setName("林平之");
// 獲取預設優先順序
//System.out.println(tp1.getPriority()); //5
//System.out.println(tp2.getPriority()); //5
//System.out.println(tp3.getPriority()); //5
// 設定執行緒優先順序
// tp1.setPriority(100000);//IllegalArgumentException:非法引數異常。
// 設定正確的執行緒優先順序
tp1.setPriority(10);
tp2.setPriority(1);
tp1.start();
tp2.start();
tp3.start();
}
}