java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按照线程的优先级决定调度哪个线程来执行。
线程的优先级用数字表示,范围从1到10:
1.Thread.MIN_PRIORITY = 1
* 2.Thread.NORM_PRIORITY = 5;
* 3.Thread.MAX_PRIORITY = 10;
使用下述方法获得或设置线程对象的优先级。
int getPriority();
void setPriority(int newPriority);
优先级的设定建议在start()之前用。
注:优先级低只是意味着获得调度的概率低,并不是先调用优先级高后调用
优先级低的线程。
线程默认优先级为:5
package com.wxh.statictest;
/**
* 线程优先级:
* 1.Thread.MIN_PRIORITY = 1
* 2.Thread.NORM_PRIORITY = 5;
* 3.Thread.MAX_PRIORITY = 10;
* 优先级高的并不是就先调用,而调用的概率会比优先级低的高
* @author Administrator
*
*/
public class PriorityTest implements Runnable {
public void run() {
System.out.println(Thread.currentThread().getPriority()+"--->"+Thread.currentThread().getName());
}
public static void main(String[] args) {
System.out.println(Thread.currentThread().getPriority());
PriorityTest p = new PriorityTest();
Thread t = new Thread(p,"HUPPU");
Thread t2 = new Thread(p,"NIKE");
Thread t3 = new Thread(p,"LININ");
Thread t4 = new Thread(p,"解放");
Thread t5 = new Thread(p,"安踏");
//优先级设置最好在start()之前,可以用Thread.MAX_PRIORITY设置,也可以用数字,线程的优先级默认为5
t.setPriority(Thread.MAX_PRIORITY);
t2.setPriority(Thread.MAX_PRIORITY);
t3.setPriority(1);
t4.setPriority(1);
t5.setPriority(1);
t.start();
t2.start();
t3.start();
t4.start();
t5.start();
}
}