面试真题

Go · 中等 · 百度

golang程序启动时发生什么

中等 Go 🎤 百度
参考答案
结论:Go程序启动历经汇编引导、运行时初始化、调度器启动,最终执行main函数。核心要点:1.入口为runtime.rt0_go汇编,设置栈、解析参数;2.调用runtime.osinit获取CPU数等,runtime.schedinit初始化栈、内存分配器、GC、创建P(按GOMAXPROCS);3.通过runtime.newproc创建main goroutine封装main.main,入队;4.runtime.mstart启动M进入调度循环,调度执行main goroutine;5.main结束后调用runtime.exit退出。整个过程隐藏了运行时初始化细节。
题目整理自公开面经,答案由校招宝自研生成,仅供参考