是否有一种编程方法可以为Linux操作系统在c/c ++中为进程设置CPU亲和性.
你需要使用sched_setaffinity(2)
.
例如,仅在CPU 0和2上运行:
#define _GNU_SOURCE #includecpu_set_t mask; CPU_ZERO(&mask); CPU_SET(0, &mask); CPU_SET(2, &mask); result = sched_setaffinity(0, sizeof(mask), &mask);
(0
对于第一个参数表示当前进程,如果它是您想要控制的其他进程,则提供PID).
另见sched_getcpu(3)
.
在进程级别使用sched_setaffinity,或在各个线程使用pthread_attr_setaffinity_np.