查看和设置进程优先级

目录

1.查看进程优先级

2.设置进程优先级

2.1 与进程优先级设置相关的API

2.2 优先级等级划分

2.3 示例代码

2.4 查看优先级设置是否生效


1.查看进程优先级

打开任务管理器,点击“详细信息”,选中要查看的exe,然后右键点击,在弹出的菜单中可以看到当前进程的优先级。

 

2.设置进程优先级

每个进程都有相应的优先级,优先级决定它何时运行和占用 CPU 时间。进程(线程)的优先级越高,那么就可以分占相对多的CPU时间片。最终的优先级共分32级,是从 0 到 31 的数值,称为基本优先级别。注意:因为线程才是CPU时间分配的最小单位,所以部分书上也叫线程优先等级。

2.1 与进程优先级设置相关的API

  • GetCurrentProcess:获取当前进程句柄
  • CreateProcess:创建进程,创建进程时可以直接设置进程优先级
  • SetPriorityClass:设置进程优先级,创建进程后可以调用此函数修改优先级
  • GetPriorityClass:获取进程优先级
  • SetProcessPriorityBoost:设置激活或停用系统自动调整进程优先级的功能
  • GetProcessPriorityBoost:获取是否激活了系统自动调整进程优先级的功能

2.2 优先级等级划分

标识优先级数值
IDLE_PRIORITY_CLASS低优先级0x00000040
BELOW_NORMAL_PRIORITY_CLASS低于标准优先级0x00004000
NORMAL_PRIORITY_CLASS标准优先级0x00000020
ABOVE_NORMAL_PRIORITY_CLASS 高于标准优先级0x00008000
HIGH_PRIORITY_CLASS高优先级0x00000080
REALTIME_PRIORITY_CLASS实时(最高优先级)0x00000100

2.3 示例代码

#include "QtWidgetsApplication5.h"
#include <QtWidgets/QApplication>
#include <windows.h>

int main(int argc, char *argv[])
{
    //设置进程优先级为"实时优先级"
    SetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS);

    //阻止系统自动调整进程优先级
    SetProcessPriorityBoost(GetCurrentProcess(), true);

    QApplication a(argc, argv);
    QtWidgetsApplication5 w;
    w.show();
    return a.exec();
}

 

2.4 查看优先级设置是否生效

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Allen Roson

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值