多内核主机上,创建了多个线程,可以把线程绑定到指定的内核上。
这样可以充分发挥多个内核的性能优势,减少上下文切换。
线程与内核绑定方法:
1、头文件
#include <sys/sysinfo.h>
#include <pthread.h>
2、绑定
1)获取cpu内核数目
int cpu_num = get_nprocs();
2)创建多个线程
pthread_t thread_id;
pthread_create(&thread_id, NULL, threadFunc, NULL);
2)根据内核索引号绑定线程,内核索引号cpu_index(从0到cpu_num)
cpu_set_t mask;
CPU_ZERO(&mask);
CPU_SET(cpu_index, &mask);
pthread_setaffinity_np(thread_id, sizeof(mask), &mask) ;
3)获取线程绑定的内核索引号,判断是否绑定成功
CPU_ZERO(&mask);
pthread_getaffinity_np(thread_id, sizeof(mask), &mask);
CPU_ISSET(cpu_index, &mask);
netstat –apn | grep 8080 查看端口号
最后
以上就是矮小小熊猫最近收集整理的关于线程与内核绑定的全部内容,更多相关线程与内核绑定内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复