延时的任务可以不等待延时期满
来源:互联网 发布:拍照软件 激萌 原理 编辑:程序博客网 时间:2024/04/28 06:45
- µC/OS-Ⅱ允许用户结束延时。延时的任务可以不等待延时期满,而是通过其它任务取消延时来使自己处于就绪态。这可以通过调用OSTimeDlyResume()和指定要恢复的任务的优先级来完成。实际上,OSTimeDlyResume()也可以唤醒正在等待事件(参看第六章——任务间的通讯和同步)的任务,虽然这一点并没有提到过。在这种情况下,等待事件发生的任务会考虑是否终止等待事件。
- OSTimeDlyResume()的代码如程序清单 L5.3所示,它首先要确保指定的任务优先级有效 [L5.3(1)]。接着,OSTimeDlyResume()要确认要结束延时的任务是确实存在的[L5.3(2)]。如果任务存在,OSTimeDlyResume()会检验任务是否在等待延时期满[L5.3(3)]。只要OS_TCB域中的OSTCBDly包含非0值就表明任务正在等待延时期满,因为任务调用了OSTimeDly(),OSTimeDlyHMSM()或其它在第六章中所描述的PEND函数。然后延时就可以通过强制命令OSTCBDly为0来取消[L5.3(4)]。延时的任务有可能已被挂起了,这样的话,任务只有在没有被挂起的情况下才能处于就绪状态[L5.3(5)]。当上面的条件都满足后,任务就会被放在就绪表中[L5.3(6)]。这时,OSTimeDlyResume()会调用任务调度程序来看被恢复的任务是否拥有比当前任务更高的优先级[L5.3(7)]。这会导致任务的切换。
0 0
- 延时的任务可以不等待延时期满
- 延时的任务可以不等待延时期满
- 让处在延时期的任务结束延时,OSTimeDlyResume()
- 延时
- 延时
- 延时
- 延时
- 延时
- 延时
- 建议PM注意任务的延时分发
- Android延时启动任务的方法
- Linux系统的延时及定时任务
- Linux系统的延时及定时任务
- java中延时任务的处理
- Android延时任务方法
- android 定时器,任务延时
- android 延时执行任务
- android 延时执行任务
- (1)算法学习-递归法
- 信息奥赛 回文数
- Unity Shader 知识点总结(二)
- 【数据结构_树_Tree_0978】按先序输出树中的元素
- 画图游戏
- 延时的任务可以不等待延时期满
- mabatis的三种参数传递映射方式总结
- UltraISO制作U盘启动盘安装Win7/9/10系统攻略
- centos下安装docker
- 【POJ3067】Japan 线段树
- 剑指offer-两个链表的第一个公共节点
- SCU4489 misaka and last order(数论)
- Ipython与spark(pyspark)整合
- 网络同步赛——小马哥和数列