线程或进程绑定到特定的cpu

经常使用的宏定义有:函数

1) 对cpu集进行初始化, 将其设置为空集ui

void CPU_ZERO(cpu_set_t *set);线程

2) 将指定的cpu加入到cpu集中进程

void CPU_SET(int cpu, cpu_set_t *set);get

3) 将指定的cpu从集中删除it

void CPU_CLR(int cpu, cpu_set_t *set);thread

4) 查询cpu是否在集中,在,返回非0值; 不在,返回0cpu

int CPU_ISSET(int cpu, cpu_set_t *set);查询

 

经常使用的函数有:co

#include <unistd.h>

1) 查询可以使用的核数

int sysconf(_SC_NPROCESSORS_CONF);

返回系统能够使用的核数,可是其值会包含系统中禁用的核的数目,所以该值并不表明当前系统中可用的核数

2) 当前系统能够使用的核数

int sysconf(_SC_NPROCESSORS_ONLN);

真正表明了系统当前可用的核数

 

与以上两个函数相似的另外两个函数以下:

#include <sys/sysinfo.h>

1)获取可用核数

int get_nprocs_conf(void);

2) 获取当前真正可用的核数

int get_nprocs(void);

 

进程与cpu的绑定

#include <sched.h>

1) 设置进程与cpu的绑定

int sched_setaffinity(pid_t pid, size_t cpusize, const cpu_set_t *mask);

2) 查看进程与cpu的绑定

int sched_getaffinity(pid_t pid, size_t cpusize, const cpu_set_t *mask);

 

线程与cpu的绑定

1) 设置线程与cpu的绑定

int pthread_setaffinity_np(pthread_t thread, size_t cpuszie, const cpu_set_t *mask);

2) 查看线程与 cpu 的绑定

int pthread_getaffinity_np(pthread_t thread, size_t cpusize, const cpu_set_t *mask);

 

查看当前系统cpu相关信息:

cat /proc/cpuinfo

相关文章
相关标签/搜索