跟雨痕大大看golang源码-01初始化
来源:互联网 发布:高中化学视频软件 编辑:程序博客网 时间:2024/05/18 21:42
最近看了下的雨痕大大写的go1.5源码剖析的pdf,觉得有必要写点东西来巩固一下。
本人水平有限,第一次写,大家轻喷啊。
01初始化
一开始雨痕大大就通过汇编代码找到了初始化里面几个关键的函数。
- runtime.args 没什么好看的就是传入cmd的运行参数。
- runtime.osinit 就是看一下系统的核数。
- runtime.schedinit比较重要
runtime.schedinit
有初始化栈,内存分配器和调度器, 垃圾回收器, 还会进行一次procresize调整一下GMP的并发调度中P的数量。
runtime·newproc(SB)和runtime·mstart(SB)就是用来运行runtime.main函数的。
runtime·main 会启动 sysmon一个辅助控制goroutine和垃圾回收程序。runtime_init runtime包的init函数。gcenable 启动gc的。 main_init() 初始化用户包的init函数。main_main用户逻辑入口
最后雨痕大大给了个强调:
- 所有init函数都在同一个goroutine内运行。
- 所有init函数结束后才会执行main.main函数。
0 0
- 跟雨痕大大看golang源码-01初始化
- nginx源码初读(12)--跟main一起看流程(Block 1: 初始化基础模块 Block 2:获取参数)
- Golang 学习之路二:工作区,源码文件,源码包,初始化函数
- golang的初始化顺序
- golang初始化结构体
- 大大
- 大大
- 大大
- 大大
- 大大
- 大大
- golang源码观感
- golang源码安装
- golang cache 源码学习
- grpc源码注解(golang)
- GOLANG源码编译安装
- golang context 源码阅读
- 大大大大大大大大大大大大大大大大大大大
- Android 学习之Activity之间的数剧传递
- MySQL cpu 达到100% 的问题分析与解决办法
- Untitled
- 建造者模式
- 快速排序
- 跟雨痕大大看golang源码-01初始化
- Win7x64+VS2012+OpenCV2.4.13+CMake3.6.0重编译OpenCV
- Oracle 11G Client 客户端安装步骤(图文详解)
- Gradle for Android 第二篇( Build.gradle入门 )
- Android Studio中关联SVN进行版本控制(一)关联到服务器
- Gradle for Android 第三篇( 依赖管理 )
- 1112. Stucked Keyboard (20)-PAT甲级真题
- Java层与Jni层的数组传递
- Gradle for Android 第四篇( 构建变体 )