Unix内核调度负责程序线程的执行。另一方面,Go运行时也有自己的调度程序,它使用称为 m:n scheduling
的调度技术负责执行goroutine
,通过多路复用使n个操作系统线程执行m个goroutine
。Go调度器是Go中负责Go程序中goroutine
的执行方式和执行顺序的组件。这使得Go调度器成为Go编程语言中非常重要的一部分,因为所有的Go程序都是以goroutine
的形式执行的。
需要留意的是,由于Go调度程序仅处理单个程序的goroutine
,因此其操作比内核调度程序的操作更简单,更轻量,更快。
Chapter 10, Concurrency in Go – Advanced Topics
将讨论更多关于Go调度器的更多细节。