目录
优先级
~高优先级的任务可以优先执行,也可以抢占低优先级的任务
~高优先级的任务不停止,低优先级的任务永远无法执行
~同等优先级的任务轮换执行
状态
~运行态:running
~就绪态:ready
~阻塞态:blocked,等待某件事
~暂停:suspend,休息,不是为了等待某件事
任务如何管理运行
有高级运行高级,无高级轮流排队运行。
任务调度
当函数延迟一定的时间的时候,任务就会被放到阻塞列表。当延迟时间到达之后。就会再次被放入就序列表
什么情况下task会中途放弃运行
~主动放弃:vtaskdelay、queue消息延迟或者阻塞时
~被动放弃:例如有gpio给更高优先级的task输入队列消息,唤醒其task则高优先级的任务会马上抢占低优先级的任务
空闲任务礼让
~如果有同是优先级为0的其他就绪任务,空闲任务主动放弃一次运行机会。