高优先级的线程抢占低优先级的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的执行权,但是只是从概率上讲高优先级的线程在高概率下被执行,并不意味着只有当高优先级的线程执行完之后,低优先级的线程才执行。
Java线程的调度和优先级
最新推荐文章于 2024-07-24 12:40:06 发布
本文详细介绍了Java线程的优先级及其对CPU调度的影响。高优先级线程可以抢占低优先级线程的执行,但并非绝对。线程按优先级形成FIFO队列,使用时间片轮转策略。Java线程优先级范围为1(MIN_PRIORITY)到10(MAX_PRIORITY),默认为5(NORM_PRIORITY)。设置线程优先级需注意避免超出范围,否则会抛出异常。线程调度并不保证高优先级线程一定先执行,而是概率上的优势。
摘要由CSDN通过智能技术生成