2

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

P1 已挂起。

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

TaskDelay(0) 在这种情况下仍然有效吗?还是仅在所有任务具有相同优先级时才有效?

问候,帕布

4

1 回答 1

5

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

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

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

于 2008-11-29T05:34:42.547 回答