优先级:设置了优先级就不代表一定会先被调度,只是被先调度的可能性大些,就像买彩票,
* 你买的多不一定会中,但几率会变大。
* Priority:设置常量 1-10 :
* 1.MIN_PRIORITY 1
* 2.MAX_PRIORITY 10
* 3.NORM_PRIORITY 5默认
public class TestPriority {
public static void main(String[] args) {
System.out.println(Thread.currentThread().getPriority());
MyPriority mp = new MyPriority();
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);
//设置优先级,要在运行之前
t1.setPriority(Thread.MAX_PRIORITY);
t2.setPriority(Thread.MAX_PRIORITY);
t3.setPriority(8);
t4.setPriority(Thread.MIN_PRIORITY);
t5.setPriority(Thread.MIN_PRIORITY);
t1.start();
t2.start();
t3.start();
t4.start();
t5.start();
}
}
class MyPriority implements Runnable{
@Override
public void run() {
System.out.println(Thread.currentThread().getName()+"----->"+Thread.currentThread().getPriority());
Thread.yield();//礼让一下,让出CPU的调度,等待调度
}
}
多执行几次,观察先后顺序,发现优先级高的不一定是在前面,但几率大很多。