- 1
- 0
- 约5.44千字
- 约 5页
- 2026-10-21 发布于北京
- 举报
线程的优先级
每个线程都有一个“优先级”,范围是0~31,0为最低优先级,31为最高优先级。当
系统决定哪个线程需要调度的时候,首先查看是否存在优先级为31的可调度线程,如果存
在,就从中选择一个进行调度。当该线程的时间片到达,系统查看是否存在另一个优先
级为31的可调度线程,如果存在,就调度它。
只要有一个可调度的优先级为31的线程存在,那么系统绝对不会调度优先级为0~30
的线程,这样会导致其他线程“饥饿”。
高优先级线程往往“打断”低优先级线程的执行。比如,当一个优先级为15的线程正
在运行,如果此时系统发现一个优先级比15高的线程可以调度,那么该高优先级线程会“打
断”那个低优先级线程的执行,哪怕低优先级的时间片才过了一半。
另外,当系统的时候,系统创建一个特殊的线程,称为“zeropage”(0页)线程,
该线程是整个系统中唯一一个优先级为0(最低)的线程。当系统没有任何线程需要执行的
时候,该线程负责将系统中所有RAM页面(也就是回收)。
线程优先级有一个抽象层的概念。
由于一些的,微
原创力文档

文档评论(0)