线程优先级
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());
}
}