linux -- 在用户模式下以编程方式放弃您的 CPU 时间片

linux -- relinquishing your CPU time slice programatically in user mode

我想做的是像下面这样编写一个流程:

while(forever)
     {
     do something;
     relinquish current cpu time slice;
     }

在 Linux 中是否有一些调用可以简单地终止您的时间片,以便永远的循环不会占用整个 CPU 线程?我确定您可以进行另一个系统调用或其他操作,但这可能会调用不必要的 kernel/user CPU 工作,我只想说我已经完成了我的时间片和重新安排。

这种类型的调用在实时环境中也很不错。

sched_yield(2) 系统调用完全符合您的要求。只需 #include <sched.h> 并调用 sched_yield();.