C++/MFC-线程优先级
来源:互联网 发布:淘宝售后技巧 编辑:程序博客网 时间:2024/06/06 08:58
一、线程优先级(Thread priority )
简单的说就是(线程)的优先级越高,那么就可以分占相对多的CPU时间片。
每个进程都有相应的优先级,优先级决定它何时运行和占用 CPU 时间。
最终的优先级共分32级,是从 0 到 31 的数值,称为基本优先级别。
进程优先级priority class
标志
优先级值
idle (低)
IDLE_PRIORITY_CLASS
4
Below 低于标准
BELOW_NORMAL_PRIORITY_CLASS
此值在2000以下系统不支持
normal (标准)
NORMAL_PRIORITY_CLASS
9(前台)或 7(后台)
Above 高于标准
ABOVE_NORMAL_PRIORITY_CLASS
此值在2000以下系统不支持
high (高)
HIGH_PRIORITY_CLASS
13
realtime (实时)
REALTIME_PRIORITY_CLASS
24
一个线程创建的时候,会继承进程的优先级等级。另外线程优先级可以用SetThreadPriority来进行微调:
微调范围
线程优先级等级
标志
优先级值
1
idle (最低)
THREAD_PRIORITY_IDLE
如果进程优先级为realtime则调整为16,其它情况为1
2
LOWEST 低
THREAD_PRIORITY_LOWEST
-2(在原有基础上-2)
3
BELOW 低于标准
THREAD_PRIORITY_BELOW_NORMAL
-1(在原有基础上-1)
4
NORMAL(标准)
THREAD_PRIORITY_NORMAL
不变(取进程优先级值)
5
ABOVE 高于标准
THREAD_PRIORITY_ABOVE_NORMAL
+1(在原有基础上+1)
6
HIGHEST (高)
THREAD_PRIORITY_HIGHEST
+2(在原有基础上+2)
7
CRITICAL(最高)
THREAD_PRIORITY_TIME_CRITICAL
如果进程优先级为realtime则调整为31,其它情况为15
注意:进程有6个等级,线程有7个等级
二、获取当前线程句柄
HANDLE GetCurrentThread(VOID)
//返回当前进句柄
DWORD GetCurrentThreadId(VOID)
//返回当前进程ID值
三、线程优先级的设置
BOOL SetThreadPriority //设置一个线程的优先级别
(
HANDLE hThread,// 线程句柄 handle to thethread
int nPriority // 要设置线程优先级别thread priority level
);
int GetThreadPriority 返回一个线程的优先级别
SetThreadPriorityBoost 设置线程是否禁用动态调整优先级功能。
GetThreadPriorityBoost 获取线程是否禁用了优先级微调功能。
四、示例代码
SetThreadPriority(GetCurrentThread(),THREAD_PRIORITY_IDLE); //设置为 最低
- C++/MFC-线程优先级
- C++/MFC-进程优先级
- C++/MFC-线程Thread
- 线程优先级
- 线程优先级
- 线程优先级
- 线程优先级
- 线程优先级
- 线程优先级
- 线程优先级
- 线程优先级
- 线程优先级
- 线程优先级
- 线程优先级
- 线程优先级
- 线程优先级
- 线程优先级
- 线程优先级
- Java实现二分查找法
- 同步TCP客户端
- Linux(Ubuntu)下MySQL的安装与配置
- ECS_8080端口连接拒绝问题排查
- fiddler post请求
- C++/MFC-线程优先级
- 【Linux网络编程】基于TCP多进程(fork)版本客户端/服务器
- 欢迎使用CSDN-markdown编辑器
- NYOJ60 谁获得了最高奖学金
- js引用公用头部底部
- win8.1中xshell输入中文显示问号问题
- stm8使用总结--segment .ubsct size overflow
- 教你在iMindMap中添加背景图像
- 桥接模式