taskDelay(0)是否会将CPU提供给优先级较低的任务

时间:2008-11-29 05:32:00

标签: vxworks

如果有3个任务(T1,T2,t3),优先级为P1 P2 P3。

P1待命。

假设任务P2正在进行一些计算。在执行期间,它希望将CPU提供给系统中的其他任务。

TaskDelay(0)在这种情况下仍能正常工作吗?或者它只在所有任务具有相同优先级时才有效?

问候,Prabhu

1 个答案:

答案 0 :(得分:5)

taskDelay(0)将导致优先级较低的任务控制CPU。

只有当具有相同优先级的任务准备好执行时,taskDelay(0)才会导致上下文切换。

taskDelay(0)实质上导致优先级为x的任务被置于优先级x就绪队列的末尾。如果它是该优先级的唯一任务,它将保留CPU。