JAVA线程优先级priority

本文介绍了JAVA中的线程调度器如何根据优先级决定执行顺序。线程优先级从1到10,数字越大,优先级越高。通过getPriority()获取优先级,setPriority(int value)设定优先级。注意设定优先级需在启动线程之前,且优先级高并不保证先执行,可能出现性能倒置现象。非法的优先级设定会导致异常。
摘要由CSDN通过智能技术生成

- JAVA中有一个叫“线程调度器”的东东,用于监控程序启动后,已进入【就绪状态】的所有线程(也就是已调用start的子线程及主线程)。

- 线程调度器 按照 优先级 来决定调度哪个线程来执行,但并不是说优先级高的就一定能被先执行,只能说优先级高的,其被执行的权重就大。

(类似于你有1万张彩票,你哥们儿只有1张彩票。只能说你中奖的概率和权重变大了,但并不等于说你这1万张彩票一定会中奖,也有可能你这1张的哥们儿中了,但你没中)

- 线程优先级不是靠嘴说说的,而是需要正儿八经用数字来说话!

线程的优先级用数字表示,范围为1~10,数字越大,优先级越高。

Thread.MIN_PRIORITY = 1;
Thread.MAX_PRIORITY = 10;
Thread.NORMAL_PRIORITY = 5;

- 整半天了,那到底用哪个函数来 获取 或 设定 线程优先级呢?

线程优先级获取:getPriority()

线程优先级设定:setPriority(int value)

- 注意:

1、不认为设定线程调度优先级时,线程默认优先级为5;
2、一定一定要先设定完线程的调度优先级后,才能启动线程!!!
3、性能倒置:优先级小的线程反而先执行,就叫做性能倒置。
4、再啰嗦一句,调度优先级高的线程,并不一定会优先被执行!!!
5、若设定的调度优先级不在[1, 10]中,则会抛出 java.lang.IllegalArgumentException 异常

// 线程调度优先级
public class ThreadPriority implements Runnable{
   

    @Override
    public void run() {
   
        // 线程名(优先级)--->运行
        System.out.p
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值