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

18 浏览
0 Comments

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

在Linux操作系统中,有没有一种编程方法可以为C/C++进程设置CPU亲和性?

admin 更改状态以发布 2023年5月23日
0
0 Comments

使用sched_setaffinity在进程级别,或pthread_attr_setaffinity_np在单个线程级别。

0
0 Comments

你需要使用sched_setaffinity(2)

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

#define _GNU_SOURCE
#include 
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)

0