Golang—runtime

52 阅读1分钟

runtime

runtime在golang中的作用类似于Java的虚拟机,不过 go runtime 不是虚拟机。 golang 程序生成可执行文件在指定平台上即可运行,效率很高, 它和 c/c++ 一样编译出来的是二进制可执行文件. 我们知道运行 golang 的程序并不需要主机安装有类似 Java 虚拟机之类的东西,那是因为在编译时,golang 会将 runtime 部分代码链接进去。

golang的runtime核心功能

  • 协程(goroutine)调度(并发调度模型)
  • 垃圾回收(GC)
  • 内存分配
  • 使得 golang 可以支持如 pprof、trace、race 的检测
  • 支持 golang 的内置类型 channel、map、slice、string等的实现
  • 等等

golang 程序、runtime、可执行文件与操作系统之间的关系.

1662882872345.png