调度规则,调度器选择的是就绪队列中优先级最高的线程。
就绪队列中优先级相同的线程采用时间片轮转的方式运行。
当一个运行着的线程使一个比它优先级高的线程满足运行条件,当前线程的 CPU 使用权就被剥夺了,或者说被让出了,高优先级的线程立刻得到了CPU 的使用权。
如果是中断服务程序使一个高优先级的线程满足运行条件,中断完成时,被中断的线程挂起,优先级高的线程开始运行。
当调度器调度线程切换时,先将当前线程上下文保存起来,当再切回到这个线程时,线程调度器将该线程的上下文信息恢复。
线程在执行完毕后,线程将被系统自动删除(在空闲线程中处理)。
最大支持 256 个线程优先级 (0~255),数值越小的优先级越高,0 为最高优先级。
最低优先级默认分配给空闲线程使用,用户一般不使用。
在系统中,当有比当前线程优先级更高的线程就绪时,当前线程将立刻被换出,高优先级线程抢占 cpu 运行。
线程调度器是抢占式的,同时它也支持创建多个具有相同优先级的线程,相同优先级的线程间采用时间片的轮转调度算法进行调度,使每个线程运行相应时间;