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());
// System.out.println(tp2.getPriority());
// System.out.println(tp3.getPriority());
// 設定線程優先級
// tp1.setPriority(1000);
// 設定正确的優先級
tp1.setPriority(10);
tp2.setPriority(1);
tp1.start();
tp2.start();
tp3.start();
}
}
package cn.itcast_04;
public class ThreadPriority extends Thread {
@Override
public void run() {
for (int x = 0; x < 50; x++) {
System.out.println(getName() + ":" + x);
}
}
}