进程/线程优先级,亲缘性
亲缘性的意思是 进程只在某个cpu上运行 ,比如
BOOL WINAPI SetProcessAffinityMask(_In_ HANDLE hProcess,_In_ DWORD_PTR dwProcessAffinityMask
);dwProcessAffinityMask 如果是 0 , 代表当前进程只在cpu0 上工作;
如果是 0x03 , 转为2进制是 00000011 . 代表只在 cpu0 或 cpu1上工作;
优先级:
//注意, 如果线程的优先级会随着进程的优先级浮动//线程:SetThreadPriority, GetThreadPrioritySetPriorityClass(GetCurrentProcess(),HIGH_PRIORITY_CLASS );DWORD pri = GetPriorityClass(GetCurrentProcess());
亲缘性:
#define CPU_MASK(mask) (1<<(mask))SYSTEM_INFO sys;GetSystemInfo(&sys);DWORD cpuCount = sys.dwNumberOfProcessors; //cpu数量 4;DWORD_PTR pmask, smask; //进程mask, 系统mask;/*CPU_MASK(3) 代表 1<<3 -> 2进制 : 1000 . 意思是只能使用 cpu3 (cpu0 起算). 这个值不要超过cpuCount;SetProcessAffinityMask 设置之后可以在任务管理器中查看相关性.一旦设置, 所有线程将只在这些cpu中执行.子进程也将继承.SetThreadAffinityMask 用法类似,但 mask 必须是进程使用的cpu 中的一项或几项;GetProcessAffinityMask 将返回2个mask , 一个是当前进程 一个是系统*/SetProcessAffinityMask(GetCurrentProcess(),CPU_MASK(3)); GetProcessAffinityMask(GetCurrentProcess(),&pmask,&smask);cout << hex <<pmask << ',' << smask << endl;
进程/线程优先级,亲缘性相关推荐
- java 线程亲缘性_CPU affinity 进程和线程的亲缘性
设置Processor Affinity 作用: 1.进程和线程的亲缘性(affinity),使进程或线程在指定的CPU(核)上运行.(比如程序A,在第4个核心上运行) 2.设置进程 或者 线程, 使 ...
- Windows核心编程 第七章 线程的调度、优先级和亲缘性(下)
7.6 运用结构环境 现在应该懂得环境结构在线程调度中所起的重要作用了.环境结构使得系统能够记住线程的状态,这样,当下次线程拥有可以运行的C P U时,它就能够找到它上次中断运行的地方. 知道这样低层 ...
- 线程的调度、优先级和亲缘性——Windows核心编程学习手札系列之七
线程的调度.优先级和亲缘性 --Windows核心编程学习手札系列之七 每个线程都拥有一个上下文结构,在线程的内核对象中,记录线程上次运行时该线程的CPU寄存器状态.Windows会每隔20ms左右查 ...
- java 线程亲缘性_线程的调度、优先级和亲缘性
每隔20ms左右,Windows要查看当前存在的所有线程内核对象.在这些对象中,只有某些对象被视为可以调度的对象.Windows选择可调度的线程内核对象中的一个,将它加载到CPU的寄存器中,它的值是上 ...
- windows内核情景分析---进程线程1
本篇主要讲述进程的启动过程.线程的调度与切换.进程挂靠 一.进程的启动过程: BOOL CreateProcess ( LPCTSTR lpApplicationName, ...
- Linux CPU亲缘性详解
前言 在淘宝开源自己基于nginx打造的tegine服务器的时候,有这么一项特性引起了笔者的兴趣."自动根据CPU数目设置进程个数和绑定CPU亲缘性".当时笔者对CPU亲缘性没有任 ...
- 为什么子进程要继承处理器亲缘性?
请先考虑一个典型的程序为什么需要启动一个子进程.(当然资源管理器不算一个典型的程序) 这是因为手头的任务被分解为子任务,无论出于何种原因,这些子任务都被放入子流程中.例如,在实现多次遍历型编译器/链接 ...
- 第三章:进程线程模型
提高CPU的利用率 进程是对正在运行程序的一个抽象. 通过进程,可以使系统具有支持并发操作的能力,可将一个单独的CPU变成多个虚拟的CPU 线程是进程中的运行实体 3.1 多道程序设计模型 1.1 程 ...
- Windows核心编程 第七章 线程的调度、优先级和亲缘性(上)
第7章 线程的调度.优先级和亲缘性 抢占式操作系统必须使用某种算法来确定哪些线程应该在何时调度和运行多长时间.本章将要介绍Microsoft Windows 98和Windows 2000使用的一些算 ...
最新文章
- 为什么jupyterlab运行程序的时候会自动停止_搭建 Julia 轻量级编写环境(VSCode,JupyterLab)
- discuz7记录下url静态化的apache2.2配置
- 2017-9-14-Linux移植:加快Linux主机的启动速度
- Leetcode 107.二叉树的层序遍历 II (每日一题 20210628 同类型题)
- 如何使用 C# 中的 ValueTask
- 速度与激情的Webpack
- PonyAI进军自动驾驶货运,乘用无人车历史性“小马过河”
- Errors running builder 'DeploymentBuilder'
- Spring Boot系列(一)——初识Spring Boot
- cornerstone 使用
- Spring AOP面向切面编程
- 十分钟时间搞懂怎么用JS代码渲染实时时间
- 京东软件测试岗:不忍直视的三面,幸好做足了准备,月薪18k,已拿offer
- 报名学习开课吧Java商业项目实战就业班
- 交响乐排布及乐器音色特点
- 错误:ERROR ITMS-90535: Unexpected CFBundleExecutable Key
- musi算法使用简记
- BZOJ4820 [SDOI2017]硬币游戏
- 移动硬盘(U盘)拒绝访问(无法双击打开)的解决方案 (转)
- java四川麻将源码,FizzBuzz