mfc 线程的优先级
知识点:
线程优先级
获取当前线程句柄
线程优先级设置
线程优先级变动
线程优先级获取 一、线程优先级(Thread priority ) 简单的说就是(线程)的优先级越高,那么就可以分占相对多的CPU时间片。 每个进程都有相应的优先级,优先级决定它何时运行和占用 CPU 时间。最终的优先级共分32级,是从 到 的数值,称为基本优先级别。 进程优先级 priority class 标志 优先级值
idle (低) IDLE_PRIORITY_CLASS
Below 低于标准 BELOW_NORMAL_PRIORITY_CLASS 此值在2000以下系统不支持
normal (标准) NORMAL_PRIORITY_CLASS (前台) 或 (后台)
Above 高于标准 ABOVE_NORMAL_PRIORITY_CLASS 此值在2000以下系统不支持
high (高) HIGH_PRIORITY_CLASS
realtime (实时) REALTIME_PRIORITY_CLASS 一个线程创建的时候,会继承进程的优先级等级。另外线程优先级可以用SetThreadPriority来进行微调:
微调范围 线程优先级等级 标志 优先级值
idle (最低) THREAD_PRIORITY_IDLE 如果进程优先级为realtime则调整为16,其它情况为1
LOWEST 低 THREAD_PRIORITY_LOWEST -(在原有基础上-)
BELOW 低于标准 THREAD_PRIORITY_BELOW_NORMAL -(在原有基础上-)
NORMAL(标准) THREAD_PRIORITY_NORMAL 不变(取进程优先级值)
ABOVE 高于标准 THREAD_PRIORITY_ABOVE_NORMAL +(在原有基础上+)
HIGHEST (高) THREAD_PRIORITY_HIGHEST +(在原有基础上+)
CRITICAL(最高) THREAD_PRIORITY_TIME_CRITICAL 如果进程优先级为realtime则调整为31,其它情况为15 二、获取当前线程句柄
HANDLE GetCurrentThread(VOID)
//返回当前进句柄
DWORD GetCurrentThreadId(VOID)
//返回当前进程ID值
、其它线程函数
BOOL SetThreadPriority 设置一个线程的优先级别
int GetThreadPriority 返回一个线程的 优先级别
SetThreadPriorityBoost 设置线程是否禁用动态调整优先级功能。
GetThreadPriorityBoost 获取线程是否禁用了优先级微调功能。 三、线程优先级的设置
BOOL SetThreadPriority
( HANDLE hThread,// 线程句柄 handle to the thread int nPriority // 要设置线程优先级别thread priority level ); void CDialog_PROCESS::OnBnClickedRadio7()
{
// TODO: 在此添加控件通知处理程序代码
BOOL r=;
UpdateData(true);
switch (m_radio_thread_selNum)
{
case :
r=SetThreadPriority(GetCurrentThread(),THREAD_PRIORITY_IDLE); //设置为 最低
TRACE("thread=%d,%04x set priority to THREAD_PRIORITY_IDLE \n",GetCurrentThreadId(),GetCurrentThreadId());
break;
case :
r=SetThreadPriority(GetCurrentThread(),THREAD_PRIORITY_LOWEST);//设置为 较低
TRACE("thread=%d,%04x set priority to THREAD_PRIORITY_LOWEST \n",GetCurrentThreadId(),GetCurrentThreadId());
break;
case :
r=SetThreadPriority(GetCurrentThread(),THREAD_PRIORITY_BELOW_NORMAL); //设置为 低于标准
TRACE("thread=%d,%04X set priority to THREAD_PRIORITY_BELOW_NORMAL \n",GetCurrentThreadId(),GetCurrentThreadId());
break;
case :
r=SetThreadPriority(GetCurrentThread(),THREAD_PRIORITY_NORMAL); //设置为 标准
TRACE("thread=%d,%04X set priority to THREAD_PRIORITY_NORMAL \n",GetCurrentThreadId(),GetCurrentThreadId());
break;
case :
r=SetThreadPriority(GetCurrentThread(),THREAD_PRIORITY_ABOVE_NORMAL); //设置为 高于标准
TRACE("thread=%d,%04X set priority to THREAD_PRIORITY_ABOVE_NORMAL \n",GetCurrentThreadId(),GetCurrentThreadId());
break;
case :
r=SetThreadPriority(GetCurrentThread(),THREAD_PRIORITY_HIGHEST); //设置为 较高
TRACE("thread=%d,%04X set priority to THREAD_PRIORITY_HIGHEST \n",GetCurrentThreadId(),GetCurrentThreadId());
break;
case :
r=SetThreadPriority(GetCurrentThread(),THREAD_PRIORITY_TIME_CRITICAL); //设置为 最高
TRACE("thread=%d,%04X set priority to THREAD_PRIORITY_TIME_CRITICAL \n",GetCurrentThreadId(),GetCurrentThreadId());
break;
default:
break; }
}
mfc 线程的优先级的更多相关文章
- C#夯实基础之多线程三:线程的优先级
一.为什么需要优先级--线程调度的问题 在现实生活中,优先级是一个很常见的现象:在火车站,如果你是孕妇,你是可以走进站中的专门绿色通道的,可以提前上火车以免拥挤:火警119匪警110出警的时候,都是人 ...
- java 22 - 6 多线程之线程调度和设置线程的优先级
线程调度 假如我们的计算机只有一个 CPU,那么 CPU 在某一个时刻只能执行一条指令,线程只有得到 CPU时间片,也就是使用权,才可以执行指令. 那么Java是如何对线程进行调用的呢? 线程有两种调 ...
- java 线程的优先级
//线程的优先级 //线程1 class xc1 implements Runnable{ public void run(){ for(int i=0;i<20;i++){ System.ou ...
- java笔记--查看和修改线程的优先级
查看和修改线程的优先级 java中每一个线程都有优先级属性,在默认情况下,新建的线程的优先级与创建该线程的线程优先级相同.每当线程调度器选择要运行的线程时,通常选择优先级较高的线程. 注:线程的优先级 ...
- MFC 线程创建方式
MFC 分UI线程和工作线程,一般现在的应用程序都是一个主UI线程和N个工作线程来完成工作.主UI线程获取到工作线程发送的信息来刷新界面. 不过因为工作需要,MFC有要维护的项目,因此就学习一下MFC ...
- Android(java)学习笔记63:线程的优先级
1. Java线程的优先级从1到10级别,值越大优先级越高线程默认优先级是5.值越大优先级越高 (1) 继承自Thread类创建线程类: package cn.itcast_04; public cl ...
- Java 并发 线程的优先级
Java 并发 线程的优先级 @author ixenos 低优先级线程的执行时刻 1.在任意时刻,当有多个线程处于可运行状态时,运行系统总是挑选一个优先级最高的线程执行,只有当线程停止.退出或者由于 ...
- JAVA之旅(十五)——多线程的生产者和消费者,停止线程,守护线程,线程的优先级,setPriority设置优先级,yield临时停止
JAVA之旅(十五)--多线程的生产者和消费者,停止线程,守护线程,线程的优先级,setPriority设置优先级,yield临时停止 我们接着多线程讲 一.生产者和消费者 什么是生产者和消费者?我们 ...
- Linux-pthread如何设置线程的优先级
设置线程优先级的函数: int pthread_setschedparam(pthread_t target_thread, int policy, const struct sched_param ...
随机推荐
- 【转】使用windeployqt.exe进行依赖查找打包
原文:https://blog.csdn.net/u011822862/article/details/52166940 Qt 官方开发环境使用的动态链接库方式,在发布生成的可执行程序时,需要复制可执 ...
- ecsop文件结构
Ecshop文件结构 :ecshop二次开发手册,ECSHOP文件结构,ECSHOP目录详解 /*ECShop 最新程序 的结构图及各文件相应功能介绍ECShop文件结构目录┣ activity.ph ...
- 记一款bug管理系统(bugdone.cn)的开发过程(3) - 永久免费化
BugDone永久免费了! BugDone(bug管理工具)已经发布有一阵子了,自发布以来注册用户量.项目创建量稳步提升,并且得到了很多用户的好评. 在开发BugDone工具之前,我们团队也曾为找不到 ...
- go语言练习:sha256、sha512哈希算法
package main import ( "fmt" "crypto/sha256") func main() { str:="test hash. ...
- 【Alpha】团队项目测试报告与用户反馈
测试报告 一 . WEB端测试 测试页面 测试功能/界面 功能/界面简述 测试预期效果 测试目的 是否完成(Y/N) Internet Explorer Google chrome Firefox S ...
- [python]如何理解uiautomator里面的 instance 及使用场景
通过uiautomatorviewer打开之后,需要通过对某个控件进行操作,但在当前界面中该控件所有属性无法唯一(其它控件属性也是一样),这个时候就需要借助实例(instance)来进行区分,inst ...
- os.path.md
os.path 我们可以利用os.path模块提供的函数更容易地在跨平台上处理文件. 即使我们的程序不是用于夸平台, 也应该使用os.path来让路径名字更加可靠. Parsing Paths os. ...
- Nescafe #29 NOIP模拟赛
Nescafe #29 NOIP模拟赛 不知道这种题发出来算不算侵权...毕竟有的题在$bz$上是权限题,但是在$vijos$似乎又有原题...如果这算是侵权的话请联系我,我会尽快删除,谢谢~ 今天开 ...
- BZOJ2306:[CTSC2011]幸福路径(倍增Floyd)
Description 有向图 G有n个顶点 1, 2, …, n,点i 的权值为 w(i).现在有一只蚂蚁,从给定的起点 v0出发,沿着图 G 的边爬行.开始时,它的体力为 1.每爬过一条边,它 ...
- Unicode,GBK,GB2312,UTF-8概念基础(转载)
第一篇:JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础本部分采用重用,转载一篇文章来完成这部分的目标.来源:holen'blog 对字符编码与Unicode,IS ...