taskDelay(0) 会将 CPU 交给较低优先级的任务吗

发布于 2024-07-10 15:15:02 字数 192 浏览 3 评论 0原文

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

P1 待定。

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

在这种情况下 TaskDelay(0) 仍然有效吗? 或者只有当所有任务都具有相同优先级时才有效?

问候, 帕布

If there are 3 tasks(T1,T2,t3) with priority P1 P2 P3.

P1 is pended.

Assume that task P2 is doing some computation. During its execution, it wants to Yield the CPU to other tasks in the system.

Will TaskDelay(0) still works in this condition? or it works only when all the tasks are with same priority?

Regards, Prabhu

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

半边脸i 2024-07-17 15:15:02

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

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

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

taskDelay(0) will not cause a lower priority task to take control of the CPU.

Only if a task at the same priority is ready to execute would taskDelay(0) cause a context switch.

taskDelay(0) essentially causes a task at priority x to be put at the end of the priority x ready queue. If it is the only task at that priority, it retains the CPU.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文