以下基于 Go 1.14
Golang 中的调度是基于 GMP 模型来实现的: * G:表示 Goroutine,一个待执行的任务。 * 它对于 Go 运行时调度可以看做线程对于操作系统调度 * 在 Go 语言中使用 runtime.g
结构表示 * M:表示操作系统线程,由操作系统调度以及管理 * 调度器最多可以创建 10000 个线程,最多只会有 GOMAXPROCS
个活跃活跃线程 * 在 Go 语言中使用 runtime.m
结构表示 * P:表示处理器 * Go 程序的处理器数量一定是 GOMAXPROCS
个,在调度器启动的时候就会创建 * 在 Go 语言中使用 runtime.p
结构表示
一些全局变量说明: