Linux下pthread的线程亲缘性研究

LINUX下可以使用pthread库提供的pthread_attr_setaffinity_np()设置线程亲缘性,理论上可以将某线程绑定在某CPU上执行。      编写测试程序的过程中发现,我的测试环境的glibc库的版本为2.3.4,要使用pthread_attr_setaffinity_np()函数必须要包含来代替,然后编译能够通过,链接的时候出现pthread_attr_setaffinity_np()函数未定义。        后来换到glibc2.8下,需要包含,编译链接执行一切顺利。        在glib2.3.4下使用无法使用线程亲缘性的函数,希望有这方面经验的朋友给予指点,谢谢!       下面是测试线程亲缘性的代码: //========================================================== //本程序演示如何设置线程亲缘性 #include //注意这个GLIBC的版本定义的宏 //测试发现,在glibc 2.3.4中,可以程序可以编译通过,但是链接的时候无法找到pthread_attr_setaffinity_np函数 //           在glibc2.8中,可以正常编译和链接,执行正常 #if __GLIBC__ == 2 && __GLIBC_MINOR__>3      #include #else      #include #endif #include #include #include /// 得到CPU的核数 int GetCpuCount() {      return (int)sysconf(_SC_NPROCESSORS_ONLN);      //_SC_NPROCESSORS_ONLN 在confname.h中定义 } #ifndef P #define P(format, ...) do \      { \          fprintf(stdout, "%s %s %d " format "\n", __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__); \          fflush(stdout); \      } \      while (0); #endif static int operator-(struct timeval& lsh, struct timeval& rsh) {      if (lsh.tv_sec==rsh.tv_sec)      {          return lsh.tv_usec - rsh.tv_usec;      }      else      {          return (lsh.tv_sec-rsh.tv_sec)*1000000 + (lsh.tv_usec - rsh.tv_usec);      } } void* _Add(void* param) {      struct timeval start;      struct timeval end;      gettimeofday(&start, NULL);      volatile double sum = 0.0;      #define MAX_NUM 1000000000      for (int i=0; i

linux 进程亲缘性,Linux线程亲缘性相关推荐

  1. linux进程管理机制,linux进程管理,linux进程管理机制

    linux进程管理,linux进程管理机制 一.基本介绍 1.在 LINUX 中,每个执行的程序(代码)都称为一个进程.每一个进程都分配一个 ID 号 2.每一个进程,都会对应一个父进程,而这个父进程 ...

  2. Linux——进程、任务和线程

    进程.任务和线程 进程在OS中是一个非常关键的抽象概念. 在OS中虚拟CPU称为执行线程,简称为线程. 用于创建和管理多执行线程的实用工具通常包含在一个pthread库.因为该库中接口是按照POSIX ...

  3. linux 进程通信机制,LINUX内核进程高效通信机制研究

    摘要:进程间的通信是多任务.多用户操作系统必须考虑的重大问题,Linux继承了Unix的基本设计思想,其安全性和稳定性得到了人们的认可,但随着其应用领域的不断拓展,其通信机制已经不能满足用户的需求.本 ...

  4. Linux进程ID号--Linux进程的管理与调度(三)

    进程ID概述 进程ID类型 要想了解内核如何来组织和管理进程ID,先要知道进程ID的类型: 内核中进程ID的类型用pid_type来描述,它被定义在include/linux/pid.h中 enum ...

  5. linux 进程管理 ppt,Linux内核结构与进程管理.ppt

    Linux内核结构与进程管理.ppt Linux 内核结构与进程管理,Linux系统结构Linux kernel 开放源代码的linux操作系统内核,目前版本为2.6,Linux内核组成1. 进程调度 ...

  6. linux进程互斥要点,linux进程之间互斥

    总所周知,在linux中pthread_mutex_t可以用于同一进程内多个线程之间的同步.我们所需要做的工作,仅仅是定义一个全局的pthread_mutex_t类型变量即可.但是对于进程之间的互斥, ...

  7. linux进程cpu时间片,Linux性能监控之CPU篇

    这篇文章中,主要介绍CPU的一些基础知识. 首先介绍一下Linux kernel中的调度器(scheduler),调度器负责调度系统中的两种资源,一是线程,二是中断.调度器给不同资源不同的优先级.从高 ...

  8. linux进程家族树,Linux内核 | 进程管理

    作者:世至其美 博客地址:hqber.com 转载须注明以上信息, 更多文章,请访问个人博客:hqber.com 1. 进程和线程 1.1 定义 进程是处于运行状态的程序和相关资源的总称,是资源分配的 ...

  9. linux进程网络监控,linux下的进程、网络、性能监控命令

    Linux下的java虚拟机性能监控与故障处理命令 java包中提供了很多监控JVM的工具类,作为java程序员必须得掌握常用的几个工具,下面是几个常用的JVM性能监控与故障处理工具的介绍与使用. 1 ...

  10. linux 进程间切换,linux 进程管理 进程切换

    2.Arm体系架构中进程切换过程 在之后的文章里,可能会有很大部分的篇幅是介绍内核如何调度和管理进程.学习了解这部分内容,很多时候是和task struct,run queue,schedule en ...

最新文章

  1. springboot 集成mybatis时日志输出
  2. 【入门级】自学Python第一步,记住这7大编码规范
  3. 使用ifconfig取出网卡eth0的ip地址-看看你有多少方法 ?
  4. 网络语言对作文教学的冲击
  5. Lombok开发指南
  6. openglshader实现虚拟场景_opengl+shader
  7. 汽车电子专业知识篇(九)-charge pump的原理介绍
  8. code css怎么拿不到div_哈登和威少再怎么努力,也追不上杜兰特,因为刷子是拿不到冠军的...
  9. python Tricks —— list 镜像复制、list of lists 的 flat
  10. 3月24 matlab函数polyfit(x,y,n)分析
  11. svm出现浮点数与字符串不能计算的错误(label必须为 整形或浮点型)
  12. 集成Slice2Java插件
  13. 网页监控插件distill web monitor使用之监控亚马逊到货及价格
  14. 你还在为找素材发愁吗?自媒体高手都知道的免费自媒体素材网
  15. 稀疏光流python_《稀》字意思读音、组词解释及笔画数 - 新华字典 - 911查询
  16. 地磅称重软件与ERP系统的实现
  17. C++修改密码恶搞软件通过代码修改电脑密码
  18. PyEcharts数据可视化(1)——配置项
  19. AOP的理解以及实现
  20. MTK-如何解锁OEM

热门文章

  1. 查看github最新的ip地址
  2. 【Unity Shader实战】卡通风格的Shader(一)
  3. springmvc结合thymeleaf的使用(项目搭建)
  4. 2022款联想小新Air14和Thinkbook14区别
  5. K8S - k8s查看污点和删除污点
  6. 照片图片照片像素化项目(on Github)
  7. EOS中JAVA从Linux下载文件,教程 - 在Linux上安装EOS
  8. PRO(2.31largebin attack)
  9. hdu 5655(拼四边形)
  10. 产业互联网浪潮下,建筑机器人如何掘金多元化场景?