runtime
# Runtime
我们可以打开 Goland 打开任意 go 项目,里面有一个External Libraries
,这里有Go
提供的各种源码包,里面有一个runtime
包。
到底什么是runtime
呢,从字面上来看,就是“运行时”,指的就是语言在运行时支撑的部分。
其实很多语言都有Runtime
,换一种说法就是程序的运行环境。
- Java:Java 虚拟机
- JavaScript:浏览器内核或者 Node 内核
# Go
的Runtime
特点:
- Go 没有虚拟机的概念
Runtime
作为程序的一部分打包进二进制产物Runtime
随用户程序一起运行Runtime
与用户程序没有明显界限,直接通过函数调用
# Runtime
的能力
内存管理能力
垃圾回收能力(GC)
超强的并发能力(协程调度),也是
Runtime
给我们处理的有一定的屏蔽系统调用能力,为了让 go 语言可以做到跨平台,在各个操作系统上的方式会帮我们进行处理
一些 go 的关键字其实是
Runtime
下的函数关键字 函数 go newproc new newobject make makeslice,makechain,makemap... <- chansend1, chanrecv1 编译的时候会把左侧的转成右侧的函数调用,才会有意义。
# 总结
- Go 的 Runtime 负责内存管理、垃圾回收、协程调度
- Go 的 Runtime 被编译为用户程序的一部分、一起运行
编辑 (opens new window)
上次更新: 2022/05/12, 22:53:19