线程与内核绑定_指定线程内核_持成的博客-程序员宝宝

技术标签: linux  

多内核主机上,创建了多个线程,可以把线程绑定到指定的内核上。

这样可以充分发挥多个内核的性能优势,减少上下文切换。


线程与内核绑定方法:

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 查看端口号




版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u011677067/article/details/74199547

智能推荐

FP-16 抽象类_Jacy_CSer的博客-程序员宝宝

Lecture 16 抽象类纯虚函数纯虚函数是没给出实现的虚函数,函数体用“=0”表示, 例如:class A{ ...... public: virtual int f()=0; //纯虚函数 ......};纯虚函数需要在派生类中给出实现。抽象类包含纯虚函数的类称为抽象类。抽象类不能用于创建对象。 例如:class A //抽象类{ ...... public: virtual int f()=0; //纯虚函数 ......};......A a; //

yukon worknote_pillarbuaa的博客-程序员宝宝

daily buildhttp://android-ci-platform.cnbj.sonyericsson.net/job/daily_build_jb-mr2-yukon/DL-CNBJ-TianChi-SWCM: tianchi gina jb 的 CM一. msm8226-tianchi_dsds.dtsi; msm-pm8226.dtsi二、. Audio Jack

python两表连接数据处理的小技巧--merge_python datamerge how_芒萝的博客-程序员宝宝

python两表连接数据处理的小技巧mergepython环境创建本地读取python两表连接数据处理的小技巧–merge​ 今天在工作的时候, 碰到两个表需要做连接, 很简单的问题, pd.merge就可以解决问题. 但是在检查数据的时候却发现很多没有merge上, 明明要连接的字段在两个表中都有记录, 为什么merge出来的结果有缺失呢?仔细检查数据才发现, 有些数据字段是以0

PHP is_callable_黑漆#000000的博客-程序员宝宝

is_callable(PHP 4 &amp;gt;= 4.0.6, PHP 5)is_callable — 验证变量的内容是否能够进行函数调用 Descriptionbool is_callable ( callback $name [, bool $syntax_only = false [, string &amp;amp;$callable_name ]] ) 验证变量的内容是...

红茶一杯话Binder(传输机制篇_上)_Omni-Space的博客-程序员宝宝

1 Binder是如何做到精确打击的?        我们先问一个问题,binder机制到底是如何从代理对象找到其对应的binder实体呢?难道它有某种制导装置吗?要回答这个问题,我们只能静下心来研究binder驱动的代码。在本系列文档的初始篇中,我们曾经介绍过ProcessState,这个结构是属于应用层次的东西,仅靠它当然无法完成精确打击。其实,在binder驱动层,还有个与之相对的结构,

第16月第5天 performSelector afterDelay cancel dispatch_semaphore_wait_weixin_30691871的博客-程序员宝宝

1. //不延时,可能会导致界面黑屏并卡住一会 [self performSelector:@selector(startScan) withObject:nil afterDelay:0.3];- (void)viewWillDisappear:(BOOL)animated{ [super viewWill...

随便推点

Azure上搭建AD RMS环境系列一 --测试环境构建及虚机配置_Cadmus1992的博客-程序员宝宝

随着现在移动设备以及个人电脑的全方面普及,企业已经无法做到将公司文件只保留在公司可控的范围内,因此近期有较多的客户在选择使用Office 365的同时,对文档信息的管理及保护也提出了迫切的需求。然而传统的做法,通过预估客户的使用需求,制定采购方案来本地部署RMS Server的方式以及无法跟进Office 365的快速部署的周期,无法做到在客户全面铺开使用Office 365的同时,完成RMS Server的搭建来给客户信息进行保护。

西北工业大学计算机学院2021拟录取名单,西工大拟录取名单公布,二本倒数第一考生上岸,不少本校考生被刷..._weixin_39615596的博客-程序员宝宝

原标题:西工大拟录取名单公布,二本倒数第一考生上岸,不少本校考生被刷近日西北工业大学计算机学院公布了2021年拟录取名单,可以发现有不少二本考生都成功上岸了,其中有一名来自安徽工业大学的考生初试分数倒数第一但是凭借复试成功逆袭上岸,反之不少本科211、985甚至本校的考生虽然初试分数高但是也被刷掉了,比如一名389分初试前几的本校考生遗憾被刷!不得不说西北工业大学还是非常公平的! 1.本科二本考生...

MAC下配置jdk,gradle环境_weixin_34097242的博客-程序员宝宝

2019独角兽企业重金招聘Python工程师标准&gt;&gt;&gt; ...

nrf52 密码配对之动态密码_Awen-Linux的博客-程序员宝宝

nrf52 密码配对之动态密码 工程例程:\examples\ble_central_and_peripheral\experimental\ble_app_multirole_lesc\pca10040\s132\arm5_no_packs 设置动态密码和我之前试的静态密码设置没太大的区别,唯一的区别就是动态密码是一个随机的数 case BLE_GA...

vue中loadsh的常用方法_玐也很可爱呀的博客-程序员宝宝

Lodash:是一套工具库,它内部封装了诸多对字符串、数组、对象等常见数据类型的处理函数,其中部分是目前ECMAScript尚未制订的规范,但同时被业界所认可的辅助函数。在vue中的使用安装依赖包npm install lodash -save-引入import _ from ‘lodash’Vue.prototype._ = _lodash的主要辅助函数Array:适用于数...

Window7下安装CGAL(VS2013)_chenwk891的博客-程序员宝宝

从事graphics的研究,难免要经常安装CGAL。CGAL十分强大,但是安装起来相对比较麻烦(对boost等库的依赖)。不过我今天想说的是,其实如果按照如下所述流程,按照CGAL其实也挺简单。首先说下安装环境:Win7+VS2013 安装Boost1.5.5+CGAL4.41. 由于CGAL对boost有依赖,首先需要按照boost。方便起见直接下载boost binar

推荐文章

热门文章

相关标签