1.2. 线程调度策略

Linux 使用三个主要线程调度策略。

  • SCHED_OTHER (有时称为 SCHED_NORMAL

    这是默认的线程策略,并由内核控制动态优先级。优先级根据线程活动进行更改。具有此策略的线程被视为具有实时优先级 0(零)。

  • SCHED_FIFO (最初为先出)

    优先级范围为 1 - 99 的实时策略,1 为最高,99%。SCHED_FIFO 线程始终具有高于 SCHED_OTHER 线程的优先级更高(例如,优先级为 1SCHED_FIFO 线程将具有高于 任何 SCHED_OTHER 线程的优先级)。作为 SCHED_FIFO 线程创建的任何线程都具有固定优先级,并将运行,直至被高优先级线程阻止或抢占。

  • SCHED_RR (Round-Robin)

    SCHED_RR 是对 SCHED_FIFO 的修改。具有相同优先级的线程具有量量,并且是所有等同优先级 SCHED_RR 线程之间的轮循程序。此策略很少使用。