深入golang runtime的调度
深入golang runtime的调度 zboya listomebao@gmail.com 版权所有,转载请注明原文地址。
很多gopher懂GPM,更多gopher不懂GPM!
相关项目地址在https://github.com/zboya/golang_runtime_reading,下文若有任何错误的地方欢迎指出。
深入golang runtime的调度 理解调度器启动 相关术语 主要源码文件 调度基本组件 G(goroutine) P(processor) M(machine) GPM的关系示意图 整体流程概览 go进程的启动 runtime调度器的启动 getg() 函数 g0和m0 mstartfn 真正的调度函数 schedule runtime.main 的执行 调度机制 调度架构概览图 基本思想 类比模型 关于G G的结构 G的新建 G的栈 G的状态 关于P P的结构 P的分配 P的状态 关于M M的结构 M的新建 辛勤工作的M M的状态 M的管理 抢占的实现 调度跟踪信息可视化 ref 理解调度器启动 本小节主要讲解golang程序启动到执行用户 package main 中的main函数的整个流程,也就是runtime启动到执行用户代码的流程。
[Read More]