课程名称:深入Go底层原理,重写Redis中间件实战
课程章节:何为Runtime
主讲老师:Moody
课程内容:
今天学习的内容包括:
Go 的 Runtime
Go Runtime 的能力
课程收获:
Go的Runtime
Go编译代码的时候是将 “用户代码” + “Runtime代码” 合并编译成二进制的。
而Java只编译 “用户代码”,因此运行时需要客户端安装JVM虚拟机才能运行。
Go Runtime 的能力
- 内存管理
- 垃圾回收(GC - Garbage Collection)
- 处理并发(协程调度)
- 统一不同操作系统调用接口
- 提供了部分关键字的实现,编译阶段会将左侧关键字转为对应Runtime中的函数
关键字 | 函数 |
---|---|
go | newproc |
new | newobject |
make | makeslice, makechain, makemap… |
<- | chansend1, chanrecv1 |