cpu - linux -- 在用户模式下以编程方式放弃你的 CPU 时间片
问题描述
我想做的是编写如下过程:
while(forever)
{
do something;
relinquish current cpu time slice;
}
在 Linux 中是否有一些调用可以简单地终止您的时间片,以便永远循环不会占用整个 CPU 线程?我确定您可以进行另一个系统调用或其他操作,但这可能会调用不必要的内核/用户 CPU 工作,我只想说我已经完成了我的时间片和重新安排。
这种类型的调用在实时环境中也可能非常好。
解决方案
sched_yield(2)
系统调用完全符合您的要求。只是#include <sched.h>
打电话sched_yield();
。
推荐阅读
- typescript - 为什么 obj['NonExistentKey'] 不会在 TS 中抛出错误?
- java - 当未在命令行中指定配置文件时,Spring Boot 集成测试无法获取默认配置文件并引发错误
- java - 如果请求返回 404,如何设置改造逻辑以跳过加载?
- arrays - Emu8086将值从数组复制到另一个
- sql - 如何在 Oracle 中指定动态 order by 子句
- matlab - 文件无效,未找到指定模块
- html - 自定义字体(fontface)在发布时不起作用
- windows - CodeBlocks 模块定义文件
- group-by - 匹配组中最高计数的两个字段
- android - 领域 logOut 当前用户无效