线程需要被线程调度管理器调度才能获得 CPU 的控制权。当系统内有多个线程同处于就绪状态时,优先级高的线程会被优先调度运行。
线程调度的意义在于合理分配处理器资源给多个处于就绪状态的线程,使这些线程都能有机会运行,避免因多个线程争用有限资源而导致应用系统死机或崩溃。线程调度由线程调度器负责,线程调度器依据线程调度算法对处于就绪状态的线程进行呢排队,并实现处理器在线程间的分配。当处理器空闲时,线程调度器会选中就绪队列中队首的线程。
线程优先级
在多个线程处于就绪状态的条件下,具有高优先级的线程会在低优先级线程之前得到执行。具有相同优先级的线程则采用轮转的方式共同分配 CPU 时间。
Thread 类定义了三个成员变量: MIN_PRIORITY 、 MAX_PRIORITY 和 NORMAL_PRIORITY, 分别表示线程最低、最高和普通优先级,用数字表示分别为 1 、 10 、 5 。当一个线程创建时默认为普通优先级。