4.2. 同步线程
sched_yield
函数是一种同步机制,允许较低优先级线程有机会运行。在较差的应用程序中发出不良的应用程序时,这种类型的请求容易出错。
较高的优先级线程可以调用 sched_yield ()
,以允许其他线程有机会运行。调用进程将移到该优先级中运行的进程的尾部。当发生这种情况时,如果没有其他进程以同一优先级运行,调用进程将继续运行。如果该进程的优先级很高,它可能会创建一个忙碌的循环,从而导致机器无法使用。
当 SCHED_DEADLINE
任务调用 sched_yield ()
时,它会提供配置的 CPU,剩余的运行时会立即节流,直到下一个周期为止。sched_yield ()
行为允许任务在下一个时间段内唤醒。
调度程序可以更好地决定何时以及是否实际还有其他线程等待运行。避免在任何实时任务中使用 sched_yield ()
。
流程
要调用
sched_yield ()
函数,请运行以下代码:Copy to Clipboard Copied! Toggle word wrap Toggle overflow SCHED_DEADLINE
任务受基于冲突的搜索(CBS)算法节流,直到下一个周期(在循环的下一次执行开始)。