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,应用程 ...
随机推荐
- 【面试 redis】【第十二篇】redis的相关面试问题
redis的相关面试问题 redis教程:http://www.redis.net.cn/tutorial/3501.html ==================================== ...
- JVM Debugger Memory View for IntelliJ IDEA
Posted on August 19, 2016 by Andrey Cheptsov Every day we try to find new ways to improve developer ...
- OpenCV支持向量机(SVM)介绍
支持向量机(SVM)介绍 目标 本文档尝试解答如下问题: 如何使用OpenCV函数 CvSVM::train 训练一个SVM分类器, 以及用 CvSVM::predict 测试训练结果. 什么是支持向 ...
- 版本控制-搭建git服务器
GitHub是一个免费托管开源代码的Git服务器,如果我们不想公开项目的源代码,又不想付费使用,那么我们可以自己搭建一台Git服务器. 下面我们就看看,如何在Ubuntu上搭建Git服务器.我们使用V ...
- PHP ~与各加速工具的性能对比~
参与测试的加速器:Xcache,Opcache,hhvm Xcache简介 前面已经介绍了PHP加速器的原理和功用(参见LAMP架构之PHP-FPM 服务器),xcache作为目前使用广泛的PHP ...
- Redis进阶之redis的生命周期
D:\Redis-x64-3.2.100>redis-cli.exe -h 127.0.0.1 -p 6379127.0.0.1:6379> set aa "123"( ...
- GraphQL入门2
将服务器端的代码升级了一下: var GraphQLSchema = require('graphql').GraphQLSchema; var GraphQLObjectType = require ...
- 在Centos6或者7上安装Kafka最新版
一.官网 http://kafka.apache.org/downloads.html 二.Kafka简介 Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写.K ...
- 免费网络视频监控软件cmsclient
http://www.brickcom.com/products/DetailView.php?modelname=CMS-Client&series=CMS#product-support ...
- javascript中的数据结构
Javascript中的关键字 abstract continue finally instanceof private this boolean ...