-
分时调度模型:
-
同优先级线程是先进先出的队列,使用时间片策略
-
时间片策略:(所有线程轮流使用CPU的使用权,平均分配每个线程占用的CPU的时间片)
-
-
抢占式调度模型:
-
对高优先级的使用优化调度的抢占式策略
-
抢占式策略:优先让优先级高的线程使用CPU,如果线程的优先级相同,那么会随机选择一个,优先级高的线程获取CPU时间片相对多一些
-
-
线程的优先级等级
-
MAX_PRIORITY
:10【最高优先级】 -
MIN_PRIORITY
:1【最低优先级】 -
NORM_PRIORITY
:5【默认优先级】
-
对应Windows线程优先级
Java线程优先级 | Windows线程优先级 |
---|---|
1(Thread.MIN_PRIORITY) | THREAD_PRIORITY_LOWEST |
2 | THREAD_PRIORITY_LOWEST |
3 | THREAD_PRIORITY_BELOW_NORMAL |
4 | THREAD_PRIORITY_BELOW_NORMAL |
5(Thread.NORM_PRIORITY) | THREAD_PRIORITY_NORMAL |
6 | THREAD_PRIORITY_ABOVE_NORMAL |
7 | THREAD_PRIORITY_ABOVE_NORMAL |
8 | THREAD_PRIORITY_HIGHEST |
9 | THREAD_PRIORITY_HIGHEST |
10(Thread.MAX_PRIORITY) | THREAD_PRIORITY_GRITICAL |
-
优先级的方法
-
getPriority():返回线程优先值
-
setPriority(int newPriority):改变线程的优先级,数越大优先级越高
-
-
说明:
-
线程创建时,继承父线程的优先级
-
低优先级只是获得调度的概率低,并非一定是在高优先级线程之后才被调用
-