可能在arm平台上用这个比较多点,因为ARM平台上面一般有所谓大小核,把 运算量多的线程绑定到大核上往往能提高效率。不这样做的话,有时候系统会让大核躺平不干活。
查看cpu信息用
cat /proc/cpuinfo
编程步骤:
1 代码最前面
#define _GNU_SOURCE
不加这个链接找不到相应函数
2 需要绑定的线程调用如下函数即可,参数为CPU核心编号,注意,是从0计数的
short CorePin(int coreID)
{
short status=0;
cpu_set_t set;
CPU_ZERO(&set);
if(coreID == -1)
{
status=-1;
return status;
}
CPU_SET(coreID,&set);
if(sched_setaffinity(0, sizeof(cpu_set_t), &set) < 0)
{
return -1;
}
return 1;
}