在Linux操作系统的c/c++中,是否有一种编程方法来设置进程的CPU相关性?

推荐答案

你需要用sched_setaffinity(2).

例如,要仅在CPU 0和2上运行:

#define _GNU_SOURCE
#include <sched.h>

cpu_set_t  mask;
CPU_ZERO(&mask);
CPU_SET(0, &mask);
CPU_SET(2, &mask);
int result = sched_setaffinity(0, sizeof(mask), &mask);

(第一个参数为0表示当前进程,如果它是您想要控制的其他进程,请提供PID).

另见第sched_getcpu(3)页.

Linux相关问答推荐

通过ssh传输参数时避免字符串拆分

BASH:在curl输出的每一行添加前缀

Git在某些文件中添加回车符,尽管autocrlf已关闭

如何修复 script(1) 实用程序输出的换行符?

如何使用 Golang 清除终端中的最后一行

为什么我的 Docker 进程不断在我的 Raspberry Pi 上重新启动?

Dockerfile:无法复制文件

如何使用 sed debug调试正则表达式?

未找到框架.NETFramework,Version=v4.7.1的参考程序集

XML 编辑/查看软件

diff 命令仅获取不同行的数量

-zxvf 在 tar -zxvf <文件名> 中是什么意思?

模拟器在内核映像文件中找不到Linux 版本字符串

将以前忽略的目录添加到 Git 存储库

使用sudo apt-get install build-essentials

ctrl-x 在终端中使用时会发送哪个信号?

如何让 cron 每N分钟运行一次,其中 n % 5 == 1?

在没有 python 命令的情况下在终端中运行 python 脚本

在类 Unix 系统中上次运行的 cron 作业(job)的详细信息?

Linux控制台中的模糊文件搜索