Go runtime 调度器精讲(十一):总览全局为,可以这样表达:Go runtime 调度器精讲(十一):总览全局是啥?

摘要:原创文章,欢迎转载,转载请注明出处,谢谢。 【目录】 Go runtime 调度器精讲(一):Go 程序初始化 Go runtime 调度器精讲(二):调度器初始化 Go runtime 调度器精讲(三):main goroutine 创建
原创文章,欢迎转载,转载请注明出处,谢谢。 【目录】 Go runtime 调度器精讲(一):Go 程序初始化 Go runtime 调度器精讲(二):调度器初始化 Go runtime 调度器精讲(三):main goroutine 创建 Go runtime 调度器精讲(四):运行 main goroutine Go runtime 调度器精讲(五):调度策略 Go runtime 调度器精讲(六):非 main goroutine 运行 Go runtime 调度器精讲(七):案例分析 Go runtime 调度器精讲(八):运行时间过长的抢占 Go runtime 调度器精讲(九):系统调用引起的抢占 Go runtime 调度器精讲(十):异步抢占 0. 前言 前面用了十讲介绍了 Go runtime 调度器,这一讲结合一些图在总览下 Go runtime 调度器。 1. 状态转换图 首先是 Goroutine 的状态转换图: 大部分转移路径前面几讲也介绍过,这里就不继续介绍了(下同)。 接着是 P 的状态转移图: 最后是线程 M 的状态转移图: (注:上述图片均来自于公众号 [码农桃花源],饶大画的太好了,直接让人不想画了。很好的公众号,干货满满,逻辑严密,清晰,偶尔还诙谐幽默,推荐哦。) 2. GPM 2.1 GPM 工作流程 直接上图: (这个图来自资深 Gopher 曹大,他的网站在 这里,推荐哦) 2.2 调度流程 点这里看 -> 动态演示图 (这个图和动画也来自曹大哈哈) 3. 小结 基本到这里 Go runtime 调度器精讲就介绍差不多了,希望这几讲能让大家有所收获,感谢陪伴,再见。 4. 参考资料 go语言调度器源代码情景分析 The Go scheduler Go Wiki: Debugging performance issues in Go programs goroutine 调度器 Go 语言高级编程