优先级高的线程并不总是先执行(CPU调度执行)
//测试线程的优先级
//注:先设置优先级再运行 且优先级高的线程并不总是先运行 而是由CPU调度执行
public class TestPriority {
public static void main(String[] args) {
//主线程的默认优先级
System.out.println(Thread.currentThread().getName() + "---" + Thread.currentThread().getPriority());
MyPriority myPriority = new MyPriority();
Thread thread01 = new Thread(myPriority, "thread01");
Thread thread02 = new Thread(myPriority, "thread02");
Thread thread03 = new Thread(myPriority, "thread03");
Thread thread04 = new Thread(myPriority, "thread04");
Thread thread05 = new Thread(myPriority, "thread05");
thread02.setPriority(Thread.MIN_PRIORITY);
thread03.setPriority(3);
thread04.setPriority(8);
thread05.setPriority(Thread.MAX_PRIORITY);
thread01.start();
thread02.start();
thread03.start();
thread04.start();
thread05.start();
}
}
class MyPriority implements Runnable{
@Override
public void run() {
System.out.println(Thread.currentThread().getName() + "---" + Thread.currentThread().getPriority());
}
}
运行效果