您的位置 首页 java

JavaThread的调度与控制以及优先级的设置

线程的调度与控制

CPU 在某一个时刻只能执行一条指令,线程只有得到CPU时间片,也就是CPU的使用权,才可以执行指令。在单CPU 的机器上线程不是并行运行的,只是各线程在不断的切换执行,感觉上像是并行执行。只有在多个CPU 上的线程才可以并行运行,每个CPU执行一个线程(是理想状态),即使是多个CPU的计算机,每个CPU也在同时执行着多个进程或线程。 Java 虚拟机负责线程的调度,取得CPU 的使用权分配给不同的线程。CPU调度模型分为: 分时 调度模型和抢占式调度模型,Java 使用抢占式调度模型。分时调度模型:所有线程轮流得到CPU 的使用权,平均分配每个线程占用CPU 的时间片。抢占式调度模型:优先让优先级高的线程使用CPU,如果线程的优先级相同,那么会随机选择一个,优先级高的线程获取的CPU 时间片相对要多一些。

线程的优先级

在Java中,线程是可以设置执行优先级的。 Thread 类中有三个 静态变量 ,用来表示线程的优先级。线程的的优先级从1~10,1的优先级最低,10的优先选最高,默认情况下的优先级是5。Java中线程的优先级默认是5。

MAX_PRIORITY:优先级最高,值为10

MIN_PRIORITY:优先级最低,值为1

NORM_PRIORITY:默认优先级,值为5

图:查看线程的优先级

对应线程的执行优先级可以手动进行设置,需要使用线程对象的成员方法setPriority()。

案例:手动设置线程的优先级

案例:为两个线程设置优先级

喜欢就关注小编,小编天天写,你也可以进步一点点

文章来源:智云一二三科技

文章标题:JavaThread的调度与控制以及优先级的设置

文章地址:https://www.zhihuclub.com/177942.shtml

关于作者: 智云科技

热门文章

网站地图