小结


通过本章节的学习,我们了解Go运行时最关键机制之一的调度模型。从本章的讲解中,我们可以看出整个 调度机制充分考虑到调度的高效及公平性。

高效性体现在:

  1. 创建新协程时,及时启动m调度,避免协程等待时间及空闲m资源浪费
  2. 在闲时,及时休眠g/p/m对象,忙时,及时唤醒g/p/m对象
  3. 在调度空隙,同时执行网络轮询或者强制GC

公平性体现在:

  1. 兼顾全局可运行队列的协程被调度,避免本地可运行队列占用调度
  2. 对于长时间运行的协程将被强制抢占