ETJava Beta | Java    注册   登录
  • 搜索:
  • Go runtime 调度器精讲(十一):总览全局

    发表于      阅读(13)     博客类别:Crawler     转自:https://www.cnblogs.com/xingzheanan/p/18416426
    如有侵权 请联系我们删除  (页面底部联系我们)  

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


    0. 前言

    前面用了十讲介绍了 Go runtime 调度器,这一讲结合一些图在总览下 Go runtime 调度器。

    1. 状态转换图

    首先是 Goroutine 的状态转换图:

    image

    大部分转移路径前面几讲也介绍过,这里就不继续介绍了(下同)。

    接着是 P 的状态转移图:

    image

    最后是线程 M 的状态转移图:

    image

    注:上述图片均来自于公众号 [码农桃花源],饶大画的太好了,直接让人不想画了。很好的公众号,干货满满,逻辑严密,清晰,偶尔还诙谐幽默,推荐哦。

    2. GPM

    2.1 GPM 工作流程

    直接上图:

    image

    这个图来自资深 Gopher 曹大,他的网站在 这里,推荐哦

    2.2 调度流程

    image

    点这里看 -> 动态演示图

    这个图和动画也来自曹大哈哈

    3. 小结

    基本到这里 Go runtime 调度器精讲就介绍差不多了,希望这几讲能让大家有所收获,感谢陪伴,再见。

    4. 参考资料