linux 进程亲缘性,Linux线程亲缘性
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线程亲缘性相关推荐
- linux进程管理机制,linux进程管理,linux进程管理机制
linux进程管理,linux进程管理机制 一.基本介绍 1.在 LINUX 中,每个执行的程序(代码)都称为一个进程.每一个进程都分配一个 ID 号 2.每一个进程,都会对应一个父进程,而这个父进程 ...
- Linux——进程、任务和线程
进程.任务和线程 进程在OS中是一个非常关键的抽象概念. 在OS中虚拟CPU称为执行线程,简称为线程. 用于创建和管理多执行线程的实用工具通常包含在一个pthread库.因为该库中接口是按照POSIX ...
- linux 进程通信机制,LINUX内核进程高效通信机制研究
摘要:进程间的通信是多任务.多用户操作系统必须考虑的重大问题,Linux继承了Unix的基本设计思想,其安全性和稳定性得到了人们的认可,但随着其应用领域的不断拓展,其通信机制已经不能满足用户的需求.本 ...
- Linux进程ID号--Linux进程的管理与调度(三)
进程ID概述 进程ID类型 要想了解内核如何来组织和管理进程ID,先要知道进程ID的类型: 内核中进程ID的类型用pid_type来描述,它被定义在include/linux/pid.h中 enum ...
- linux 进程管理 ppt,Linux内核结构与进程管理.ppt
Linux内核结构与进程管理.ppt Linux 内核结构与进程管理,Linux系统结构Linux kernel 开放源代码的linux操作系统内核,目前版本为2.6,Linux内核组成1. 进程调度 ...
- linux进程互斥要点,linux进程之间互斥
总所周知,在linux中pthread_mutex_t可以用于同一进程内多个线程之间的同步.我们所需要做的工作,仅仅是定义一个全局的pthread_mutex_t类型变量即可.但是对于进程之间的互斥, ...
- linux进程cpu时间片,Linux性能监控之CPU篇
这篇文章中,主要介绍CPU的一些基础知识. 首先介绍一下Linux kernel中的调度器(scheduler),调度器负责调度系统中的两种资源,一是线程,二是中断.调度器给不同资源不同的优先级.从高 ...
- linux进程家族树,Linux内核 | 进程管理
作者:世至其美 博客地址:hqber.com 转载须注明以上信息, 更多文章,请访问个人博客:hqber.com 1. 进程和线程 1.1 定义 进程是处于运行状态的程序和相关资源的总称,是资源分配的 ...
- linux进程网络监控,linux下的进程、网络、性能监控命令
Linux下的java虚拟机性能监控与故障处理命令 java包中提供了很多监控JVM的工具类,作为java程序员必须得掌握常用的几个工具,下面是几个常用的JVM性能监控与故障处理工具的介绍与使用. 1 ...
- linux 进程间切换,linux 进程管理 进程切换
2.Arm体系架构中进程切换过程 在之后的文章里,可能会有很大部分的篇幅是介绍内核如何调度和管理进程.学习了解这部分内容,很多时候是和task struct,run queue,schedule en ...
最新文章
- springboot 集成mybatis时日志输出
- 【入门级】自学Python第一步,记住这7大编码规范
- 使用ifconfig取出网卡eth0的ip地址-看看你有多少方法 ?
- 网络语言对作文教学的冲击
- Lombok开发指南
- openglshader实现虚拟场景_opengl+shader
- 汽车电子专业知识篇(九)-charge pump的原理介绍
- code css怎么拿不到div_哈登和威少再怎么努力,也追不上杜兰特,因为刷子是拿不到冠军的...
- python Tricks —— list 镜像复制、list of lists 的 flat
- 3月24 matlab函数polyfit(x,y,n)分析
- svm出现浮点数与字符串不能计算的错误(label必须为 整形或浮点型)
- 集成Slice2Java插件
- 网页监控插件distill web monitor使用之监控亚马逊到货及价格
- 你还在为找素材发愁吗?自媒体高手都知道的免费自媒体素材网
- 稀疏光流python_《稀》字意思读音、组词解释及笔画数 - 新华字典 - 911查询
- 地磅称重软件与ERP系统的实现
- C++修改密码恶搞软件通过代码修改电脑密码
- PyEcharts数据可视化(1)——配置项
- AOP的理解以及实现
- MTK-如何解锁OEM