多线程跑调度_【技术感悟】多线程调度

进程,线程的调度,就像动车的调度。

其基本逻辑都是:

不同的东西(线程,火车),对应不同的优先级(等级)

优先级越高,越被特殊照顾,特殊考虑,被安排先运行(火车在轨道上,进程在内存中,占用CPU)的几率越大,机会越好;

现实中,对于中国的火车,大致分为这几类:G,D,Z,T,K,L等。相对优先级依次降低,对应的,调度时,被安排到的机会和可能性也就降低了。所以有时候会出现,慢车让快车的情况。包括D字头的动车,遇到优先级更高的G字头的高铁,也可能会让车的。

计算机领域中的线程调度,每个线程分一个(有动态和静态之分,此处暂且忽略)优先级,一般都是数字,数字越小,说明优先级越高,比如0,1,2,3,4等等。

所以,如果CPU空闲了,经过线程调度,发现有两个线程,优先级分别是2和3,那么肯定就先安排优先级为2的线程去运行,

运行意味着,占用CPU,开始执行。

等优先级为2的线程运行完毕,再执行线程调度,如果此时:

除了已有的一个优先级为3的线程,另外还有一个优先级为1的线程:那么还是要先去运行优先级更高的,为1的那个线程->相对来说,低优先级的3的线程,还是无法被运行;

除了已有的一个优先级为3的线程,另外还有一个优先级为4的线程:那么由于优先级3比优先级4高,所以就可以安排优先级为3的线程去执行了。

这就是,线程调度的基本逻辑。

更深入的,当然还有其他很多因素:

在普通PC中用到的操作系统中,线程的优先级,多数都是初始化一个值,后期会随着情况变化而动态改变的,不是一成不变的;

嵌入式系统中,更多的时候,线程(进程)的数目都是固定的,已知的,往往都是相对固定的线程,固定的优先级的;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值