进程都属于某个优先级类,另外可以指定进程中线程的相对线程优先级。
Windows支持6个优先级类(priority class):idle,below normal,normal,above normal,high 和 real-time.
进程优先级类解释:
real-time(实时):此进程中的线程必须立即响应事件,执行实时任务。此进程中的线程还会抢占操作系统的组件的CPU时间。使用该优先级类需要极为小心。
high(高):此进程中的线程必须立即响应事件,执行实时任务。任务管理器运行在这一级,因此用户可以通过它结束失控的进程。
above normal(高于标准):此进程中的线程运行在 normal 和 high 优先级类之间。
normal(标准):此进程中的线程无需特殊的调度。
below normal(低于标准):此进程中的线程运行在 normal 和 idle 优先级类之间。
idle(低):此进程中的线程在系统空闲时运行。屏幕保护程序、后台实用程序和统计数据收集软件通常使用该进程。
normal是最常用的优先级类,为99%的应用程序所使用。Windows支持7个相对线程优先级:idle,lowest,below normal,normal,above normal,highest 和 time-critical.
这些优先级是相对于进程优先级的。
相对线程优先级解释:
time-critical:对于real-time优先级类,线程运行在31上;所有其他优先级运行在15.
highest:线程运行在高于normal之上两个级别.
above normal:线程运行在高于normal之上一个级别.
normal:线程运行在进程normal级别上.
below normal:线程运行在低于normal之下一个级别.
lowest:线程运行在低于normal之下两个级别.
idle:对于real-time优先级类,线程运行在16;所有其他优先级运行在1.
大多数线程使用normal线程优先级。线程优先级是相对于进程优先级的。如果改变进程优先级,线程的相对优先级不变,但是优先级值将变化。
进程永远无法调度,能调度的是线程。进程优先级是 Microsoft 提出的一个抽象概念,有助于用户无需了解调度程序的内部工作机理。