时刻保持学习之心,方能成就不世功业
本人拙见,如有技术性错误;希望每一个热爱的小伙伴,你我共同交流;
我们在学习Java的多线程中,线程的优先级是我们始终绕不开的一个点,对之后多线程的调优问题也有很大的帮助;
写在前面---->
- 线程的优先级主要使用两个方法:getPriority()和setPriority(int number);
- 优先级的设定必须是在其Start()方法启动之前;
- 优先等级高的并不一定最先执行,取决于cpu的调度;(通常情况下---->优先级高的最先执行)
- 系统默认的优先级为---->5;且其取值范围是[1~10];
- 优先级的值一样时,先后执行;
实例运行程序
public class TestThreadPriority implements Runnable {
@Override
public void run() {
System.out.println(Thread.currentThread().getName() + "---->" + Thread.currentThread().getPriority());
}
public static void main(String[] args) {
// 默认的优先级 为5
System.out.println(Thread.currentThread().getName() + "---->" + Thread.currentThread().getPriority());
TestThreadPriority priority = new TestThreadPriority();
Thread t1 = new Thread(priority,"t1");
Thread t2 = new Thread(priority,"t2");
Thread t3 = new Thread(priority,"t3");
Thread t4 = new Thread(priority,"t4");
Thread t5 = new Thread(priority,"t5");
Thread t6 = new Thread(priority,"t6");
// 优先级的设定,必须在方法启动之前设定;
// 优先级高的并不一定先执行;
t1.setPriority(2);
t1.start();
t2.setPriority(6);
t2.start();
t3.setPriority(Thread.MAX_PRIORITY);
t3.start();
t4.setPriority(6);
t4.start();
t5.setPriority(9);
t5.start();
t6.setPriority(8);
t6.start();
}
}
运行结果
main---->5
t3---->10
t6---->8
t5---->9
t2---->6
t4---->6
t1---->2```