常用的宏定义有:

1) 对cpu集进行初始化, 将其设置为空集

void CPU_ZERO(cpu_set_t *set);

2) 将指定的cpu加入到cpu集中

void CPU_SET(int cpu, cpu_set_t *set);

3) 将指定的cpu从集中删除

void CPU_CLR(int cpu, cpu_set_t *set);

4) 查询cpu是否在集中,在,返回非0值; 不在,返回0

int CPU_ISSET(int cpu, cpu_set_t *set);

常用的函数有:

#include <unistd.h>

1) 查询可使用的核数

int sysconf(_SC_NPROCESSORS_CONF);

返回系统可以使用的核数,但是其值会包含系统中禁用的核的数目,因此该值并不代表当前系统中可用的核数

2) 当前系统可以使用的核数

int sysconf(_SC_NPROCESSORS_ONLN);

真正代表了系统当前可用的核数

与以上两个函数类似的另外两个函数如下:

#include <sys/sysinfo.h>

1)获取可用核数

int get_nprocs_conf(void);

2) 获取当前真正可用的核数

int get_nprocs(void);

进程与cpu的绑定

#include <sched.h>

1) 设置进程与cpu的绑定

int sched_setaffinity(pid_t pid, size_t cpusize, const cpu_set_t *mask);

2) 查看进程与cpu的绑定

int sched_getaffinity(pid_t pid, size_t cpusize, const cpu_set_t *mask);

线程与cpu的绑定

1) 设置线程与cpu的绑定

int pthread_setaffinity_np(pthread_t thread, size_t cpuszie, const cpu_set_t *mask);

2) 查看线程与 cpu 的绑定

int pthread_getaffinity_np(pthread_t thread, size_t cpusize, const cpu_set_t *mask);

查看当前系统cpu相关信息:

cat /proc/cpuinfo

转载于:https://www.cnblogs.com/rohens-hbg/p/11224865.html

线程或进程绑定到特定的cpu相关推荐

  1. linux下把进程绑定到特定cpu核上运行

    现在大家使用的基本上都是多核cpu,一般是4核的.平时应用程序在运行时都是由操作系统管理的.操作系统对应用进程进行调度,使其在不同的核上轮番运行. 对于普通的应用,操作系统的默认调度机制是没有问题的. ...

  2. 为什么要把进程/线程绑定到特定cpu核上运行?(cpu core id coreIdx)opdevsdk_sys_bindThreadCoreId()

    看海康hikflow_demo代码,在线程处理函数里调用了绑定函数,把这个线程绑定到某个cpu核上,不知为何要这么做? 原因 答1 现在大家使用的基本上都是多核cpu,一般是4核的.平时应用程序在运行 ...

  3. 2012-5-3 线程和进程的区别

    进程和线程的区别 http://www.cnblogs.com/lmule/archive/2010/08/18/1802774.html 简而言之,一个程序至少有一个进程,一个进程至少有一个线程. ...

  4. Android面试知识库,线程和进程的区别【Android面试送命题】

    这道题面试出现的概率是百分之70 下面我来讲下如何回答 1,进程是资源管理的最小单位,线程是程序执行的最小单位 2,每个进程都有自己的数据段 代码段 和堆栈段.线程 通常叫做 轻型的进程.它包含独立的 ...

  5. 操作系统课程设计-线程和进程的同步与互斥

    操作系统的课程设计 多线程和多进程同步方法解决水果分配问题: 水果分配的问题: 桌上有一只盘子,每次只能放入5只水果.爸爸专放苹果, 妈妈专放橘子,一个儿子专等吃盘子中的橘子,一个女儿专等吃盘子中的苹 ...

  6. 【黑马-python进阶】---学习笔记(7)---线程、进程、协程、正则表达式

    4 多任务-线程 4.1 多任务介绍 目标 知道多任务概念 多任务和单任务程序的区别 1.多任务解析 操作系统可以同时运行多个任务,现在,多核CPU已经非常普及,但是,即使过去的单核CPU,也可以执行 ...

  7. 【Java线程】进程与线程

    进程与线程的区别 1.简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高. 另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而 ...

  8. 多核 linux 绑定,Linux 操作系统下CPU多核心的绑定

    现在多CPU的趋势越来越大了. 有时候为了更好地操作机器, 需要将某个进程绑定到具体的CPU上去. 下面给出了一个进程绑定到具体的CPU上去的一个例子. cpu.c[CODE] #include #i ...

  9. 线程和进程的各自特点和区别

    进程 进程是具有一定功能的程序在一个数据集合上的运行过程,它是系统进行资源分配和调度管理的一个可并发执行的基本单位. 是执行中一段程序,即一旦程序被载入到内存中并准备执行,它就是一个进程. 进程的基本 ...

最新文章

  1. html生成的超级链接预览功能,超链接特效
  2. maven install 报错 source 1.5 中不支持 lambda 表达式
  3. 解决Xshell 连不上ubuntu系统
  4. 基于 abapGit 和 abaplint 的 ABAP 持续集成的一个例子
  5. MS UC 2013-0-虚拟机-标准化-部署-1-虚拟化-部署
  6. 深度学习(27)随机梯度下降五: 单输出感知机梯度
  7. JAVA JFrame画图基础和事件监听
  8. 快搜浏览器_让微软丢大脸的edge浏览器终于出新版了!
  9. 上线数天获2400星,这个GitHub项目帮你从头开始学习数据科学
  10. 利用SciTE的导出功能保持代码语法着色效果
  11. 客户端主机自查DNS故障及应急解决办法
  12. 大数据技术栈思维导图
  13. matlab 8点fft蝶形图,FFT快速傅里叶变换(蝶形算法)详解精要.ppt
  14. contiki CC2530 CC2430例子描述
  15. php 16进制 声明,php16进制转换
  16. 读唐巧博客2011年总结感想
  17. JAVA基础 网络编程
  18. ahb2apb bridge验证项目介绍
  19. iOS OC语言(二) 类
  20. 少说话多写代码之Python学习048——类的成员(supper函数)

热门文章

  1. 20145227鄢曼君《网络对抗》逆向及Bof基础
  2. 生出树状的文件夹结构
  3. ACM数论之旅17---反演定理 第一回 二项式反演(神说要有光 于是就有了光(´・ω・`))...
  4. Dapper学习笔记(3)-增、删、改、查
  5. 在Ubuntu上为Android系统内置C可执行程序测试Linux内核驱动程序 3
  6. PostgreSQL操作问题(转载)
  7. c++ 结构体赋值_《零基础看得懂的C语言入门教程》—(十二)结构体是这么回事
  8. 现代浏览器博物馆_云旅游!Tableau 为你揭秘纽约现代艺术博物馆的珍贵馆藏
  9. html圆圈里面问号,html,css实现问号提示信息
  10. hive查询where join_Hive系列(4):常用函数where,join