go runtime简介
有别于java和c#的runtime是一个虚拟机,go的runtime和我们的go代码一同编译成二进制可执行文件。
go的runtime负责:
- goroutine的调度
- go内存分配
- 垃圾回收(GC)
- 封装了操作系统底层操作,如syscall,原子操作,CGO
- map,channel,slice,string内置类型的实现
- 反射(reflection)的实现
- pprof,trace,race的实现
本小节将依次介绍
- map底层实现
- channel的底层实现
- goroutine调度器
- go 内存分配器
- go 垃圾会收器