SetProcessAffinityMask
参数一:进程句柄 -1为自身句柄
参数二:指定CPU
参数二的设置是二进制转十进制。参数二需填写十进制数字
例如我想设置
1CPU二进制为1 转换为十进制为 1
2CPU二进制为10 转换为十进制为 2
3CPU二进制为100 转换为十进制为 4
4CPU二进制为1000 转换为十进制为 8
1,2CPU二进制为11 转换为十进制为 3
3,4CPU二进制为1100 转换为十进制为 12
123CPU二进制为1110 转换为十进制为 14
1234CPU二进制为1111 转换为十进制为 15

exp:
SetProcessAffinityMask(GetCurrentProcess(),7)使用前三个核
SetProcessAffinityMask(GetCurrentProcess(),16)使用第五个核(如无第五个核则取小于16的最近的核组数,此时15即1234,这四个核)

获取系统总的核数并使用前n-1个核
SYSTEM_INFO info;
GetSystemInfo(&info);
int corenum = info.dwNumberOfProcessors;//计算核数法1

// int corenum2 = std::thread::hardware_concurrency();//计算核数法2

SetProcessAffinityMask(GetCurrentProcess(), pow(2, corenum-1)-1);

C++控制CPU核的使用相关推荐

  1. c和cpp实现CPU核上绑定固定线程

    文章目录 参考链接: 相关概念及工具 CPU亲和性 查看cpu有几个核 命令查看 代码查看 代码讲解 cpu集(cpu_set_t) cpu_set_t的使用 非动态分配cpu_set_t 动态分配c ...

  2. MTK开发之cpu核开关与频率调节

    一.最近碰到MTK芯片cpu时常跑满,四核又经常变为两核,导致各种卡顿,放音乐都卡,所以想强制让它跑四核,让系统跑的流畅一些. 1.首先通过adb查看系统cpu有几个核心 在/sys/devices/ ...

  3. 在MTK芯片上如何控制CPU的核数和频率-MTK PerfService

    在MTK芯片上如何控制CPU的核数和频率-MTK PerfService 一句话:PerfService就是用来调整CPU/GPU资源的.对于老的API,可以更简单地讲就是调CPU核数和CPU频率的. ...

  4. 在MTK芯片上如何控制CPU的核心数和频率--MTK PerfService

    在MTK芯片上如何控制CPU的核数和频率-MTK PerfService 一句话:PerfService就是用来调整CPU/GPU资源的.对于老的API,可以更简单地讲就是调CPU核数和CPU频率的. ...

  5. 使用 sched_setaffinity 将线程绑到CPU核上运行

    linux 提供CPU调度函数,可以将CPU某一个核和指定的线程绑定到一块运行. 这样能够充分利用CPU,且减少了不同CPU核之间的切换,尤其是在IO密集型压力之下能够提供较为友好的性能. 通过sch ...

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

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

  7. taskset -pc PID 查看线程占用cpu核

    taskset -pc  PID 可以用于 查看 当前线程 对应绑定的 在 哪个核上面. 这个 可以用于 程序优化, 查看 哪个线程占用的 cpu 比重比较高 首先 可以通过  top  -H   - ...

  8. linux c 控制cpu占用率

    之前在<编程之美>上提到说控制cpu的使用率使能在任务管理器上画一条正弦线 现在下面提供一个在Linux平台上实现的控制cpu频率在某个值 cpu_load.c #include < ...

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

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

最新文章

  1. 写时复制(Copy-On-Write)思想在Java中的应用
  2. 论文简述 | CamVox: 一种低成本、高精度的激光雷达辅助视觉SLAM系统
  3. linux没有semanage命令,SELinux-semanage命令详解
  4. 基建管控系统_科技|电力北斗科技创新为数字新基建赋能
  5. ChartDirector资料小结
  6. 云南旅游市场整治呈压倒性态势 旅游人次及年收入双增长
  7. java8--IO(java疯狂讲义3复习笔记)
  8. matlab实现浮点转定点,浮点转定点方法总结.doc
  9. echarts 3d饼图_Echarts 使用教程 1 基本使用方法
  10. [蛋蛋插画日记]喂喂,看“表演”请砸钱币喔!
  11. tfs nginx 端口调用失败?
  12. Web安全—Web漏扫工具NetSparker安装与使用
  13. 基于java的智能计算器_基于Java的语音计算器实现
  14. EDM模板设计:教您设计三种独特的邮件营销模板
  15. 【AAAI 2021】多出口架构的知识蒸馏:Harmonized Dense Knowledge Distillation Training for Multi-Exit Architectures
  16. vue 获取当前日期的农历(阴历)
  17. JAVA打印空三角形
  18. 国内研发团队普遍常见问题
  19. 修改RedHat启动项
  20. 游戏产业撬动元宇宙市场 虚拟现实引爆计算力需求

热门文章

  1. 关于ckeditor的配置
  2. windows下bat批处理实现守护进程
  3. bottleneck resnet网络_Detection学习之四-利用pytorch实现resnet
  4. JAVA获取同一路径下所有子类或接口实现类
  5. linux记录iptables日志,linux – 如何配置syslog.conf文件,在单独的文件中记录iptables消息?...
  6. 为何网站天天更新收录还是那么慢吗
  7. linux启动找不到,pxe启动的时候找不到pxelinux.0的原因
  8. [转]-Sublime Text 3最好的功能、插件和设置
  9. (转)Managed DirectX +C# 开发(入门篇)(六)
  10. MFC 教程【4_消息映射的实现】