当前位置: 首页 > news >正文

建设英文版网站天津环保网站建设概念

建设英文版网站,天津环保网站建设概念,有哪些网站是cms,专业零基础网站建设教学在哪里CPU亲和性(CPU Affinity)是某一进程(或线程)绑定到特定的CPU核(或CPU集合)#xff0c;从而使得该进程(或线程)只能运行在绑定的CPU核(或CPU集合)上。进程(或线程)本质上并不与CPU核绑定。每次进程(或线程)被调度执行时#xff0c;它都可以由其关联列表中的任何CPU核执行。如果…      CPU亲和性(CPU Affinity)是某一进程(或线程)绑定到特定的CPU核(或CPU集合)从而使得该进程(或线程)只能运行在绑定的CPU核(或CPU集合)上。进程(或线程)本质上并不与CPU核绑定。每次进程(或线程)被调度执行时它都可以由其关联列表中的任何CPU核执行。如果未显式设置关联列表则进程(或线程)可以在任何CPU核上运行。 一.查看CPU信息       1.通过命令执行 cat /proc/cpuinfo (1).processor指明每个物理CPU中逻辑处理器信息序号从0开始       (2).cpu cores: 指明每个物理CPU中总核数       2.查看物理CPU个数执行: cat /proc/cpuinfo | grep physical id | sort | uniq | wc -l 3.查看每个物理CPU中core的个数(即核数)执行 cat /proc/cpuinfo | grep cpu cores | uniq 4.查看逻辑CPU的个数执行 cat /proc/cpuinfo | grep processor | wc -l 5.通过代码sysconf函数或get_nprocs函数 void get_cpu_cores() {// _SC_NPROCESSORS_CONF:系统配置的CPU核心数量// _SC_NPROCESSORS_ONLN:当前系统实际可用的CPU核心数量,可能会因为系统的运行状态而变化// 两个函数返回的值可能并不完全相同std::cout cpu cores(_SC_NPROCESSORS_CONF): sysconf(_SC_NPROCESSORS_CONF) \n;std::cout cpu cores(_SC_NPROCESSORS_ONLN): sysconf(_SC_NPROCESSORS_ONLN) \n;// get_nprocs_conf:系统配置的CPU核心数量; get_nprocs:当前系统中可用的CPU核心数量,此值可能小于get_nprocs_conf返回的值std::cout cpu cores(get_nprocs_conf): get_nprocs_conf() \n;std::cout cpu cores(get_nprocs): get_nprocs() \n; } 二.将进程绑定到指定的CPU核上       1.通过taskset(-p:pid; -c:cpu list)       (1).查看执行程序(进程)运行在哪个CPU核上taskset -p 进程ID(PID, 操作系统分配给每个进程的唯一标识符)       如查看gnome-shell运行在哪个CPU核上通过top命令查看gnome-shell的PID为1246输入taskset -pc 1246 ,执行结果如下图所示 (2).启动时指定CPU标号从0开始,绑定多个CPU核之间用逗号分隔     taskset -c CPU_标号 可执行程序       (3).启动后绑定CPU标号从0开始,绑定多个CPU核之间用逗号分隔     taskset -pc CPU_标号 PID       2.通过代码sched_setaffinity和sched_setaffinity函数       (1).sched_setaffinity(pid_t pid, size_t cpusetsize, const cpu_set_t *mask): 将ID为pid的线程的CPU亲和性掩码(CPU affinity mask)设置为mask指定的值。如果pid为0则使用调用线程。参数cpusetsize是 mask指向的数据的长度(以字节为单位)。通常该参数被指定为sizeof(cpu_set_t)。       (2).sched_getaffinity(pid_t pid, size_t cpusetsize, cpu_set_t *mask): 将ID为pid的线程的亲和性掩码写入mask指向的cpu_set_t结构中。cpusetsize参数指定掩码的大小(以字节为单位)。如果pid为零则返回调用线程的掩码。 void set_processor_to_cpu_core() {{ // sched_getaffinitycpu_set_t mask;CPU_ZERO(mask);if (sched_getaffinity(0, sizeof(mask), mask) ! 0)std::cerr Error: fail to sched_getaffinity\n;for (auto i 0; i sysconf(_SC_NPROCESSORS_ONLN); i) {if (CPU_ISSET(i, mask))std::cout CPU i is set\n;} }{ // sched_setaffinitycpu_set_t mask;CPU_ZERO(mask);// 可以多次调用CPU_SET以指定将多个CPU核添加到mask中CPU_SET(0, mask); // set affinity for core 0, set the bit that represents core 0if (sched_setaffinity(0, sizeof(mask), mask) ! 0)std::cerr Error: fail to sched_setaffinity\n; }} 三.将线程绑定到指定的CPU核上       1.通过代码pthread_setaffinity_np函数和pthread_getaffinity_np       (1).pthread_setaffinity_np(pthread_t thread, size_t cpusetsize, const cpu_set_t *cpuset): 将线程thread的CPU亲和性掩码(CPU affinity mask)设置为cpuset指向的CPU集。如果调用成功并且该线程当前未在cpuset中的某个CPU上运行则它将迁移到这些CPU中的一个。       (2).pthread_getaffinity_np(pthread_t thread, size_t cpusetsize, cpu_set_t *cpuset): 获取cpuset指向的缓冲区中线程thread的CPU亲和性掩码。 void get_thread_id(int n) {std::cout thread id: std::this_thread::get_id() , on cpu: sched_getcpu() \n;std::this_thread::sleep_for(std::chrono::seconds(n)); }void set_thread_to_cpu_core() {// 最大的硬件并发线程数std::cout Support concurrent threads: std::thread::hardware_concurrency() \n;std::thread th1(get_thread_id, 5), th2(get_thread_id, 5); { // pthread_getaffinity_npcpu_set_t cpuset;CPU_ZERO(cpuset);if (pthread_getaffinity_np(th1.native_handle(), sizeof(cpuset), cpuset) ! 0)std::cerr Error: fail to pthread_getaffinity_np\n;// for (auto i 0; i sysconf(_SC_NPROCESSORS_ONLN); i) {// if (CPU_ISSET(i, cpuset))// std::cout CPU i is set\n;// } }{ // pthread_setaffinity_npcpu_set_t cpuset;CPU_ZERO(cpuset);// 可以多次调用CPU_SET以指定将多个CPU核添加到cpuset中CPU_SET(0, cpuset); // set affinity for core 0, set the bit that represents core 0if (pthread_setaffinity_np(th2.native_handle(), sizeof(cpuset), cpuset) ! 0)std::cerr Error: fail to pthread_setaffinity_np\n;}th1.join();th2.join(); } 以上测试代码执行结果如下图所示虚拟机 GitHubhttps://github.com/fengbingchun/Linux_Code_Test
http://www.huolong8.cn/news/333705/

相关文章:

  • wap网站开发 php360免费wifi怎么使用
  • 白云区网站建设公wordpress区块链主题
  • 南昌网站制作方案定制wordpress 跟换主题
  • 政务门户网站建设规范wordpress付费商业站
  • 广州网站设计服务优化公司治理结构
  • php网站开发经理招聘优化加速
  • 如何建立一个网站平台网站苏州企业名称大全
  • 网站文章正文可以做内链吗做网站就上凡科建设
  • 厚街网站建设公司怎么给网站做友情链接
  • 生鲜网站建设软件开发app制作公司排名
  • 购物导购网站开发微信导航网站模板
  • 炫酷企业网站北京网站优化价格
  • 校园图书回收网站建设旅行社做网站
  • 海南专业网站开发公司新企业建网站
  • 免费设计模板网站华为域名购买
  • 深圳市文刀网站建设怎样建设网站首页
  • 网站建设 技术支持 阿里公司网站开发费用如何做账
  • 建设行业个人云网站在线之家
  • 坤思特重庆网站建设熊掌号企业标准查询网官网
  • 企业网站的网址有哪些网店怎么开要多少钱
  • 海口网站排名推广php网站开发背景
  • vs网站开发效果图公司组织机构框架图
  • 电商旅游网站策划书wordpress刷关键
  • 黑河北京网站建设网页动画制作软件
  • 做平面设计的一般浏览什么网站网推资源渠道
  • 郑州做网站的专业公司小程序代理招商公司
  • seo研究中心好客站幻灯片网站源码
  • 国内公司名字可以做国外网站网站彩票做号
  • 怎么制作手机app及网站wordpress不能将请求写入临时文件.
  • 浦东网站备案流程南充建设公司网站