zoukankan      html  css  js  c++  java
  • 线程或进程绑定到特定的cpu

    常用的宏定义有:

    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

  • 相关阅读:
    自制对焦测试卡
    RHEL AS4上配置snmpd遇到问题及解决办法笔记
    一个OID资料集中网站
    mrtg配置小问题
    sybase 优化总结[zt]
    [ZT] solarwinds 2002工程师版本(带注册机)
    推荐四个网盘资源搜索工具
    Hadoop 集群搭建
    分布式文件系统 HDFS 简介
    HDFS Shell 命令实操
  • 原文地址:https://www.cnblogs.com/rohens-hbg/p/11224865.html
Copyright © 2011-2022 走看看