转载: 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-线程优先级的更多相关文章

  1. mfc 线程的优先级

    知识点:  线程优先级  获取当前线程句柄  线程优先级设置  线程优先级变动  线程优先级获取 一.线程优先级(Thread priority ) 简单的说就是(线程)的优先级越高,那么就 ...

  2. Cocos2dx中线程优先级

    Cocos2dx中线程优先级问题 不论是ios还是android,遇到耗时的任务都要另起线程处理,否则程序不能及时用户的反馈.游戏中如果一圈循环不能在1/frameRate(帧率是30则1/30)秒内 ...

  3. <<Windows via C/C++>>学习笔记 —— 线程优先级【转】

    转自:http://www.cnblogs.com/wz19860913/archive/2008/08/04/1259807.html 每个线程都有一个“优先级”,范围是0-31,0为最低优先级,3 ...

  4. 线程优先级抢占实验【RT-Thread学习笔记 3】

    同时处于就绪状态的线程,优先级高的先执行. 高优先级就绪时,低优先级任务让出CPU,让高优先级任务先执行. 创建两个任务函数: //线程优先级抢占 void thread1_entry(void *p ...

  5. Java多线程系列--“基础篇”10之 线程优先级和守护线程

    概要 本章,会对守护线程和线程优先级进行介绍.涉及到的内容包括:1. 线程优先级的介绍2. 线程优先级的示例3. 守护线程的示例 转载请注明出处:http://www.cnblogs.com/skyw ...

  6. Android线程优先级设置方法技巧

    对于Android平台上的线程优先级设置来说可以处理很多并发线程的阻塞问题, 比如很多无关紧要的线程会占用大量的CPU时间,虽然通过了MultiThread来解决慢速I/O但是合理分配优先级对于并发编 ...

  7. java后台进程和线程优先级

    1. 后台线程:处于后台运行,任务是为其他线程提供服务.也称为“守护线程”或“精灵线程”.JVM的垃圾回收就是典型的后台线程. 特点:若所有的前台线程都死亡,后台线程自动死亡. 设置后台线程:Thre ...

  8. EPROCESS 进程/线程优先级 句柄表 GDT LDT 页表 《寒江独钓》内核学习笔记(2)

    在学习笔记(1)中,我们学习了IRP的数据结构的相关知识,接下来我们继续来学习内核中很重要的另一批数据结构: EPROCESS/KPROCESS/PEB.把它们放到一起是因为这三个数据结构及其外延和w ...

  9. MFC 线程创建方式

    MFC 分UI线程和工作线程,一般现在的应用程序都是一个主UI线程和N个工作线程来完成工作.主UI线程获取到工作线程发送的信息来刷新界面. 不过因为工作需要,MFC有要维护的项目,因此就学习一下MFC ...

  10. [改善Java代码]线程优先级只使用三个等级

    线程的优先级(priority)决定了线程获得CPU运行的机会,优先级越高获得的运行机会越大,优先级越低获得的机会越小.Java的线程有10个级别(准确的说是11个级别,级别为0的线程是JVM,应用程 ...

随机推荐

  1. spring cloud:Edgware.RELEASE版本hystrix超时新坑

    升级到Edgware.RELEASE发现,zuul中不管如何设置hystrix的超时时间均不起作用,仍然是默认的1000ms.  降回低版本后正常,但是低版本的fallback方法中,又拿不到详细异常 ...

  2. 在windows 10下使用docker

    准备工作 Windows 10下的Docker是依赖于Hyper-v的,首先我们需要启用它:控制面板 -> 程序 -> 启用或关闭Windows功能 -> 选中Hyper-V 安装D ...

  3. 根据请求号(request ID)查找正在运行的sql

    --下面的SQL可以根据Request ID找到对应的Session信息: select * from v$session where paddr in (select addr from v$pro ...

  4. bayer格式

    1 图像bayer格式介绍 bayer格式图片是伊士曼·柯达公司科学家Bryce Bayer发明的,Bryce Bayer所发明的拜耳阵列被广泛运用数字图像. 对于彩色图像,需要采集多种最基本的颜色, ...

  5. maven打包含有多个main程序的jar包及运行方式

    pom.xml <build>        <plugins>            <plugin>                <groupId> ...

  6. WineBottler for Mac(Mac 运行 exe 程序工具)安装

    1.软件简介    WineBottler 是 macOS 系统上一款模拟 Windows 环境的工具,让你能够在 Mac 上安装 Windows 软件,类似于知名的 Crossover,但 Wine ...

  7. Go 程序的性能调试问题

    英文原文:Debugging performance issues in Go programs 假设你手上有个Go语言编写的程序,你打算提升它的性能.目前有一些工具可以为此提供帮助.这些工具能帮你发 ...

  8. WRI$_ADV_OBJECTS表过大,导致PDB的SYSAUX表空间不足

    现象监控发现sysaux表空间使用不断增加,导致表空间不足 查看过程 查看版本: SQL> select * from v$version; BANNER CON_ID ------------ ...

  9. Jmeter发送Json请求

    jmeter发送的post请求,可以是json请求,和普通的post请求稍微有点区别,那么怎么用jmeter发送json请求呢? 首先要找一个json请求的例子,这个例子是携程网搜索机票, 网址为:h ...

  10. django --- DetailView源码分析

    [背景] 最近在看django官方文档的class-based-views这一节的时候一直不得要领,感觉自己清楚,但是回想起来又没有脉络:于是没有办法只 能是“暗中观察”django的源码了. 刚打开 ...