线程的优先级 (2020.8.12)

一.线程调度
线程有两种调度模型
1.分时调度模型: 所有线程轮流使用CPU使用权
2.抢占式调度模型:优先让优先级高的线程使用CUP(如果优先级相同则会随机选一个)

Java使用的是抢占式调度模型

多线程是随机性的,因为谁能抢到CPU使用权都是不一定的

那么,我们可以修改线程的优先级吗?答案肯定是可以
Thread类中有两个方法用来设置和获取线程优先级的方法:
1.public final int getPriority(): 返回此线程的优先级
2.public final void setPriority(int newPriority) :更改此线程的优先级

注意:
1.线程优先级高仅仅是表示线程获取CPU时间片的几率高,而不是线程优先级高的全部执行再到优先级低的
2.线程默认优先级为5 ,优先级的范围在1-10

接下来用代码来展示:

自定义的MyThread 类:
继承了 Thread 并且重写了 run方法
在这里插入图片描述
测试类:
在这里插入图片描述

控制台输出结果:

在这里插入图片描述

在这里插入图片描述
可见我们定义的自行车优先级的最低的,大部分都是最后才执行,而少部分在一开始也执行了,说明了多线程的随机性,优先级高只是提高了CUP获取时间片的概率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值