Java线程的调度和优先级

本文详细介绍了Java线程的优先级及其对CPU调度的影响。高优先级线程可以抢占低优先级线程的执行,但并非绝对。线程按优先级形成FIFO队列,使用时间片轮转策略。Java线程优先级范围为1(MIN_PRIORITY)到10(MAX_PRIORITY),默认为5(NORM_PRIORITY)。设置线程优先级需注意避免超出范围,否则会抛出异常。线程调度并不保证高优先级线程一定先执行,而是概率上的优势。
摘要由CSDN通过智能技术生成
高优先级的线程抢占低优先级的CPU,调度策略:时间片,抢占式。
同优先级的线程组成先进先出的队列(先到先服务),使用时间片策略。
对高优先级,使用优先调度的抢占式策略。
Java线程优先级的范围为:1~10:
  最低优先级 1:MIN_PRIORITY。
  最高优先级 10:MAX_PRIORITY。
  普通(默认)优先级 5:NORM_PRIORITY。
1:设置线程优先级
	Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
2:获取线程优先级
	Thread.currentThread().getPriority();
注意:设置范围在 1-10,否则抛出 java.lang.IllegalArgumentException异常。
补充:高优先级的线程要抢占低优先级线程CPU的执行权,但是只是从概率上讲高优先级的线程在高概率下被执行,并不意味着只有当高优先级的线程执行完之后,低优先级的线程才执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值