怎么理解g0和m0,和生产消费的g、m有什么不同

来源:1-4 Go 程序是怎么跑起来的

panccvv

2021-05-18 18:30:00

怎么理解g0和m0,和曹大在课程上说的生产和消费的g、m有什么不同

写回答

2回答

Xargin

2021-05-18

再补充一句,m0 因为执行的是主函数,所以它退出的时候有一些特殊逻辑

比如你的 main 函数退出了,那它相关的资源什么的也需要退出。

0

Xargin

2021-05-18

http://img.mukewang.com/climg/60cf39860971310c40962486.jpg


g0 是 M 在执行调度指令时使用的 g,栈使用了线程创建的时候默认的线程栈

m0 在图上有了


update 2021.06.20:

m0 是程序启动时操作系统自动给我们创建好的第一个线程,一般也被称为主线程。

在 Go 里,这个线程也是参与调度的,之前画的图有点问题~


0

Go高级工程师实战营

慕课网与 GoCN 社区官方联手打造,定义行业Go高级人才培养标准,4个月,快速晋升为P6+/D7级高级人才。

458 学习 · 266 问题

查看课程