一尘不染

如何在Linux中的C或C ++中为进程设置CPU亲和力?

linux

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


阅读 327

收藏
2020-06-02

共1个答案

一尘不染

您需要使用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)

2020-06-02