线程优先级设置与调度机制详解
时间:2026-08-15 | 作者:冻月看渠 | 阅读:0线程优先级的基本概念
在应用程序中,如果要对线程进行调度,最直接的方式就是设置线程的优先级。
优先级越高的线程,获得CPU执行的机会越大;优先级越低的线程,获得CPU执行的机会越小。
线程的优先级用1~10之间的整数来表示,数字越大,优先级越高。除了可以直接使用数字表示线程的优先级,还可以使用Thread类中提供的三个静态常量表示线程的优先级,如表1所示。
表1 Thread类的优先级常量
| Thread**类的静态常量** | 功能描述 |
|---|---|
| static int MAX_PRIORITY | 表示线程的最高优先级,相当于值10 |
| static int MIN_PRIORITY | 表示线程的最低优先级,相当于值1 |
| static int NORM_PRIORIY | 表示线程的普通优先级,相当于值5 |
线程优先级的设置方式
程序运行时,凡是处在就绪状态的线程,都会对应一个自己的优先级。比如 main 线程,默认就是普通优先级。
当然,这个优先级并不是一成不变的,完全可以通过 Thread 类的 setPriority(int newPriority) 方法重新设置。
这里的参数 newPriority 可以传入 1~10 之间的整数,也可以直接使用 Thread 类提供的三个静态常量。
案例:不同优先级线程的运行情况
下面结合一个案例,具体看看两个不同优先级的线程在程序里究竟是怎样运行的,如文件1所示。
文件1 Example07.ja va
1 public class Example07 {
2 public static void main(String[] args) {
3 // 分别创建两个Thread线程对象
4 Thread thread1 = new Thread(() -> {
5 for (int i = 0; i < 10; i++) {
6 System.out.println(Thread.currentThread().getName()
7 + "正在输出i:" + i);
8 }
9 },"优先级较低的线程");
10
11 Thread thread2 = new Thread(() -> {
12 for (int j = 0; j < 10; j++) {
13 System.out.println(Thread.currentThread().getName()
14 + "正在输出j:" + j);
15 }
16 },"优先级较高的线程");
17 // 分别设置线程的优先级
18 thread1.setPriority(Thread.MIN_PRIORITY);
19 thread2.setPriority(10);
20 // 开启两个线程
21 thread1.start();
22 thread2.start();
23 }
24 }
运行结果如图1所示。
图1 运行结果
运行结果分析
文件1中,创建了两个线程thread1和thread2,分别将线程的优先级设置为1和10。
从图1可以看出,优先级较高的thread2线程会获得更多的机会优先执行。
使用线程优先级时的注意事项
要特别留意这一点:Ja va虽然定义了10个线程优先级,但这些优先级最终能否发挥作用,还得看操作系统是否支持。
不同操作系统对优先级的处理方式并不一致,很难和Ja va里的线程优先级做到一一对应。
也正因为如此,设计多线程应用时,功能实现绝不能建立在线程优先级之上;线程优先级更适合被当作一种优化程序执行效率的辅助手段,而不是功能正确性的前提。
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。
相关文章
更多-
- 迅捷路由器怎么调信号最强,设置时要注意什么?
- 时间:2026-08-27
-
- vivo浏览器怎么卸不掉?原因和解决方法在这里
- 时间:2026-08-27
-
- OPPO R11s黑屏了,怎么强制恢复出厂设置?
- 时间:2026-08-27
-
- 飞利浦显示器包装盒有生产日期和保修期吗?怎么看?
- 时间:2026-08-27
-
- 联想新平板开机必须联网吗?怎么做?
- 时间:2026-08-27
-
- 平板横竖屏切换设置与问题解决
- 时间:2026-08-27
-
- 移动电源容量怎么测?要准备哪些工具?
- 时间:2026-08-27
-
- 荣耀90 Pro防水吗?防水级别多少?怎么用才安全
- 时间:2026-08-27
精选合集
更多大家都在玩
大家都在看
更多-
- 2026年9月17日小鸡庄园答案
- 时间:2026-09-16
-
- 蚂蚁庄园今日答案2026年9月17日
- 时间:2026-09-16
-
- 蚂蚁庄园小课堂今日最新答案2026年9月17日
- 时间:2026-09-16
-
- 蚂蚁庄园小鸡答题今日答案2026年9月17日
- 时间:2026-09-16
-
- 褪黑素主要由人体哪个器官分泌 蚂蚁庄园今日答案9.17
- 时间:2026-09-16
-
- 蚂蚁庄园今天答题答案2026年9月17日
- 时间:2026-09-16
-
- 蚂蚁庄园答题今日答案2026年9月17日
- 时间:2026-09-16
-
- 研学旅游指导师的核心服务对象是 蚂蚁新村今日答案2026.9.16
- 时间:2026-09-16
