线程优先级调度的使用与理解

本文介绍了Java中线程调度的原理,包括相同优先级线程的时间片轮转和高优先级线程的抢占式策略。线程的优先级分为MAX_PRIORITY(10)、MIN_PRIORITY(5)和NORM_PRIORITY(1)。通过setPriority()和getPriority()方法可以设置和获取线程优先级。即使将线程设置为最高优先级,也不能确保最先执行,因为低优先级线程仍有可能抢占执行机会。
摘要由CSDN通过智能技术生成

Java的调度方法:

相同优先级线程之间组成先进先出队列,使用时间片策略;而对高优先级线程采用优先调度的抢占式策略。

线程的优先级等级:

MAX_PRIORTY:10    //最高优先级

MIN_PRIORTY:5     //默认优先级

NORM_PRIORTY:1    //最低优先级

如何设置线程的优先级?

使用 getPriority()获取线程的优先级数值,使用setPriority()设置线程的优先级数值。有一个注意点,在设置为线程为最高优先级后,并不意味着线程一定是最先执行的,低线程也可能会先执行,通俗而言就是,设置为最高优先级后,相当于调度的概率变大了,比如变为了98%,但是有限度低的例如2%,也是有可能比高优先级线程先执行。

一般通过线程子类对象.setPriority(MIN_PRIORTY)方式调用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值