首页 > 教程 > Go runtime 调度器总览

Go runtime 调度器总览

时间:2024-09-18 | 来源: | 阅读:147

话题: T GO TIM

原创文章,欢迎转载,转载请注明出处,谢谢。 0. 前言 前面用了十讲介绍了 Go runtime 调度器,这一讲结合一些图在总览下 Go runtime 调度器。 1. 状态转换图 首先是 Goroutine 的状态转换图: 大部分转移路径前面几讲也介绍过,这里就不继续介绍了(下同)。 接着是 P

原创文章,欢迎转载,转载请注明出处,谢谢。


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 语言高级编程


湘ICP备2022002427号-10湘公网安备:43070202000427号
© 2013~2019 haote.com 好特网