C++/MFC-线程优先级
转载: https://blog.csdn.net/qwdpoiguw/article/details/72830426
一、线程优先级(Thread priority )
简单的说就是(线程)的优先级越高,那么就可以分占相对多的CPU时间片。
每个进程都有相应的优先级,优先级决定它何时运行和占用 CPU 时间。
最终的优先级共分32级,是从 0 到 31 的数值,称为基本优先级别。
|
进程优先级priority class |
标志 |
优先级值 |
|
idle (低) |
IDLE_PRIORITY_CLASS |
|
|
Below 低于标准 |
BELOW_NORMAL_PRIORITY_CLASS |
此值在以下系统不支持 |
|
normal (标准) |
NORMAL_PRIORITY_CLASS |
9(前台) 或 7(后台) |
|
Above 高于标准 |
ABOVE_NORMAL_PRIORITY_CLASS |
此值在以下系统不支持 |
|
high (高) |
HIGH_PRIORITY_CLASS |
|
|
realtime (实时) |
REALTIME_PRIORITY_CLASS |
|
一个线程创建的时候,会继承进程的优先级等级。另外线程优先级可以用SetThreadPriority来进行微调:
微调范围
|
|
线程优先级等级 |
标志 |
优先级值 |
|
|
idle (最低) |
THREAD_PRIORITY_IDLE |
如果进程优先级为realtime则调整为,其它情况为 |
|
2 |
LOWEST 低 |
THREAD_PRIORITY_LOWEST |
-2(在原有基础上-2) |
|
3 |
BELOW 低于标准 |
THREAD_PRIORITY_BELOW_NORMAL |
-1(在原有基础上-1) |
|
|
NORMAL(标准) |
THREAD_PRIORITY_NORMAL |
不变(取进程优先级值) |
|
5 |
ABOVE 高于标准 |
THREAD_PRIORITY_ABOVE_NORMAL |
+1(在原有基础上+1) |
|
6 |
HIGHEST (高) |
THREAD_PRIORITY_HIGHEST |
+2(在原有基础上+2) |
|
CRITICAL(最高) |
THREAD_PRIORITY_TIME_CRITICAL |
如果进程优先级为realtime则调整为,其它情况为 |
注意:进程有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); //设置为 最低
jpg改rar 
C++/MFC-线程优先级的更多相关文章
- mfc 线程的优先级
知识点: 线程优先级 获取当前线程句柄 线程优先级设置 线程优先级变动 线程优先级获取 一.线程优先级(Thread priority ) 简单的说就是(线程)的优先级越高,那么就 ...
- Cocos2dx中线程优先级
Cocos2dx中线程优先级问题 不论是ios还是android,遇到耗时的任务都要另起线程处理,否则程序不能及时用户的反馈.游戏中如果一圈循环不能在1/frameRate(帧率是30则1/30)秒内 ...
- <<Windows via C/C++>>学习笔记 —— 线程优先级【转】
转自:http://www.cnblogs.com/wz19860913/archive/2008/08/04/1259807.html 每个线程都有一个“优先级”,范围是0-31,0为最低优先级,3 ...
- 线程优先级抢占实验【RT-Thread学习笔记 3】
同时处于就绪状态的线程,优先级高的先执行. 高优先级就绪时,低优先级任务让出CPU,让高优先级任务先执行. 创建两个任务函数: //线程优先级抢占 void thread1_entry(void *p ...
- Java多线程系列--“基础篇”10之 线程优先级和守护线程
概要 本章,会对守护线程和线程优先级进行介绍.涉及到的内容包括:1. 线程优先级的介绍2. 线程优先级的示例3. 守护线程的示例 转载请注明出处:http://www.cnblogs.com/skyw ...
- Android线程优先级设置方法技巧
对于Android平台上的线程优先级设置来说可以处理很多并发线程的阻塞问题, 比如很多无关紧要的线程会占用大量的CPU时间,虽然通过了MultiThread来解决慢速I/O但是合理分配优先级对于并发编 ...
- java后台进程和线程优先级
1. 后台线程:处于后台运行,任务是为其他线程提供服务.也称为“守护线程”或“精灵线程”.JVM的垃圾回收就是典型的后台线程. 特点:若所有的前台线程都死亡,后台线程自动死亡. 设置后台线程:Thre ...
- EPROCESS 进程/线程优先级 句柄表 GDT LDT 页表 《寒江独钓》内核学习笔记(2)
在学习笔记(1)中,我们学习了IRP的数据结构的相关知识,接下来我们继续来学习内核中很重要的另一批数据结构: EPROCESS/KPROCESS/PEB.把它们放到一起是因为这三个数据结构及其外延和w ...
- MFC 线程创建方式
MFC 分UI线程和工作线程,一般现在的应用程序都是一个主UI线程和N个工作线程来完成工作.主UI线程获取到工作线程发送的信息来刷新界面. 不过因为工作需要,MFC有要维护的项目,因此就学习一下MFC ...
- [改善Java代码]线程优先级只使用三个等级
线程的优先级(priority)决定了线程获得CPU运行的机会,优先级越高获得的运行机会越大,优先级越低获得的机会越小.Java的线程有10个级别(准确的说是11个级别,级别为0的线程是JVM,应用程 ...
随机推荐
- Unity中巧用协程和游戏对象的生命周期处理游戏重启的问题
主要用到协程(Coroutines)和游戏对象的生命周期(GameObject Lifecycle)基础知识,巧妙解决了游戏重启的问题. 关于协程,这里有篇文章我觉得写的非常好,理解起来也很容易.推荐 ...
- Java中部分常见语法糖
语法糖(Syntactic Sugar),也称糖衣语法,指在计算机语言中添加的某种语法,这种语法对语言本身功能来说没有什么影响,只是为了方便程序员的开发,提高开发效率.说白了,语法糖就是对现有语法的一 ...
- BTrace使用小结
简介 BTrace是一个安全的JVM动态追踪工具,最初为原Sun公司Kenai项目下面的一个子项目. 典型的使用场景是,“我要查个问题,可那个方法没有打印入口参数和返回结果日志”,“我想看某个方法的执 ...
- Window 任务栏清除历史记录
Window任务栏上的历史记录在很多情况下是很方便的[可以很快速的执行命令] 但如果历史记录太多可能会影响使用,经过我N长时间的研究和网络上的搜索 终于找到了清除的方法,网络上通过IE删除等方式都是无 ...
- CAS Maven
https://wiki.jasig.org/display/CASUM/Best+Practice+-+Setting+Up+CAS+Locally+using+the+Maven2+WAR+Ove ...
- Sort_Buffer_Size 设置对服务器性能的影响
基础知识: 1. Sort_Buffer_Size 是一个connection级参数,在每个connection第一次需要使用这个buffer的时候,一次性分配设置的内存.2. Sort_Buffer ...
- CentOS下如何查看并杀死僵尸进程
昨天服务器到期,之前的服务器由于空间小,不能满足现在的服务要求,就新购买了一个服务器,目前正在调试安装中! 在调试过程中,发现系统中有很多僵尸进程,现在就是找出这些僵尸进程,并将其杀死. 用top查看 ...
- ECMAScript 6 入门之变量的解构赋值
1.数组 1. var a=1,b=2,c=3; console.log("a:",a) console.log("b:",b) console.log(&qu ...
- Haproxy全透明代理
1. 系统环境搭建 操作系统Centos7 内核版本3.10 Centos7已自带TPROXY模块,不需要安装TPROXY 2. Haproxy下载,编译,安装,配置 下载地址 http://www. ...
- mac中安装wxpython
一.简介 wxPython是Python语言的一套优秀的GUI图形库,允许Python程序员很方便的创建完整的.功能键全的GUI用户界面. wxPython是作为优秀的跨平台GUI库wxWidgets ...