线程或进程绑定-CPU

xiaoxiao2021-02-28  35

参考Linux进程或线程绑定到CPU

1 进程绑定

头文件及绑定函数 #include <sched.h> int sched_setaffinity(pid_t pid, size_t cpusetsize, const cpu_set_t *mask); int sched_getaffinity(pid_t pid, size_t cpusetsize, cpu_set_t *mask); 参数说明 pid:进程的id号,如果pid为0,则表示本进程. cpusetsize:mask的大小 mask:运行进程的CPU,可以通过以下函数操作mask. #define CPU_SET(cpu, cpusetp) //设置cpu #define CPU_CLR(cpu, cpusetp) //删除cpu #define CPU_ISSET(cpu, cpusetp) //判断cpu #define CPU_ZERO(cpusetp) //初始化为0 使用示例: int cpuNum; cpu_set_t mask; CPU_ZERO(&mask); CPU_SET(cpuNum, &mask); if (sched_setaffinity(0, sizeof(mask), &mask) < 0) { perror("sched_setaffinity"); }

2 线程绑定

头文件及绑定函数 #include <pthread.h> int pthread_setaffinity_np(pthread_t thread, size_t cpusetsize, const cpu_set_t *cpuset); int pthread_getaffinity_np(pthread_t thread, size_t cpusetsize, cpu_set_t *cpuset);
转载请注明原文地址: https://www.6miu.com/read-2629494.html

最新回复(0)