RT-Thread学习总结(1)---线程调度

1、系统支持256个优先级,0为最高优先级,255一般为空闲线程;根据实际情况可设置为8个或者32个优先级

2、调度器实现通过一个包含256个优先级队列的数组;每个数组元素中放置相同优先级链表的表头。这些相同优先级的列表形成一个双向环形链表,最低优先级线程链表一般只包含一个idle线程。系统中的总线程数不受限制,只和系统所能提供的内存资源相关。

线程就绪优先级队列

3、采用了基于位图的优先级算法(时间复杂度O(1),即与就绪线程的多少无关),通过位图的定位快速的获得优先级最高的线程。

4、允许创建相同优先级的线程,相同优先级的线程采用时间片轮转方式进行调度(也就是通常说的分时调度器),时间片轮转调度仅在当前系统中无更高优先级就绪线程存在的情况下才有效。

5、操作系统通过数据结构线程控制块struct rt_thread控制线程

6、线程共有5种状态,如下图

线程状态

7、空闲线程是系统线程中一个比较特殊的线程,它具有最低的优先级,当系统中无其他线程可运行时,调度器将调度到空闲线程。空闲线程通常是一个死循环,永远不被挂起。

   空闲线程提供了钩子函数,并且负责线程清理(rt_thread->cleanup回调函数)函数、真正的线程删除。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值