线程优先权(Thread Priority)
Win32 优先权是以数值表现的,并以进程的“优先权类别(priorityclass)”、线程的“优先权层级 (priority level)”和操作系统当时采用的“动态提升(Dynamic Boost )”作为计算基准。 所有因素放在一起,最后获得一个 0~31 的数值。拥有最高优先权之线程,即为下一个将执行起来的线程。
1. 优先权类别(Priority Class)
进程属性,Win32 提供四种优先权类别,每一个类别对应一个基本的优先权层级。
优先权类别(Priority Classes) 基础优先权值(base priority)
HIGH_PRIORITY_CLASS 13
IDLE_PRIORITY_CLASS 4
NORMAL_PRIORITY_CLASS 7 or 8(译注:有些资料上写 7 or 9)
REALTIME_PRIORITY_CLASS 24
大部分程序使用 NORMAL_PRIORITY_CLASS 。少数情况下才会考虑使用其他类别。例如, Task Manager就是使用 HIGH_ PRIORITY_CLASS,所以即使其他程序处于非常忙碌的状态下,它也总是能够有所反应。
屏 幕 保 护 程 序 使 用IDLE_PRIORITY_CLASS,它就只会在 CPU 绝对空闲的时候才执行。
最后一个类别是 REALTIME_ P