评论

收藏

[其他] 168_优先级以及任务饿死

网络安全 网络安全 发布于:2021-07-08 15:26 | 阅读数:288 | 评论:0

  分析学习一下官方例程中的任务优先级体验例子,同时简单猜想下为什么会出现任务饿死。
  首先看例子关键代码:
DSC0000.png

  里面任务优先级有两个,Task 2的优先级是高的。运行效果:
DSC0001.png

  从上面运行结果看,Task 1被饿死了。为什么饿死呢?这个可能与Task的代码实现有关了,Task的代码实现:
DSC0002.png

  应该是里面的这个延时导致的切换失败,合理的设计应该是调用OS提供的延时函数,相应函数的调用会触发任务调度,先从这个Task离开之后才会有一个成功的切换。而离开后的Task2应进入到一个等待的某种状态,这是我自己理解上的一个结论。
  因此,就目前的这部分代码,延时时间的长短不会让Task出现激活的机会。

  
关注下面的标签,发现更多相似文章