Skip to content

Golang 学习笔记 ​

#golang · #总览

基于《The Go Programming Language》(gopl.io) + Go 源码分析,涵盖基础语法与底层原理。

Go 语言以简洁的语法、强大的并发原语和高效的编译速度著称。本专题从官方教材 gopl.io 出发,系统学习语言基础,再深入 runtime 源码,理解 GMP 调度、内存分配、GC 等核心机制。


专题深入 ​

基础教程 ​

  • 基础教程 — gopl.io 全书 13 章知识点 + 代码示例,从入门到反射/底层编程

底层原理 ​

  • GMP 调度模型 — Goroutine 调度器深度剖析:G/M/P 结构、调度流程、work stealing、抢占式调度
  • 内存分配器 — tcmalloc思想、mspan/mcache/mcentral/mheap、分配全链路、逃逸分析
  • Slice 底层实现 — slice header 结构、扩容策略、内存共享、nil/empty slice 区别
  • Map 与 sync.Map 底层实现 — hmap 结构、bucket 设计、哈希冲突、扩容机制、sync.Map 读写分离原理
  • Channel 底层实现 — hchan 环形队列、阻塞唤醒、sudog 等待队列、无缓冲 vs 有缓冲
  • string 底层实现 — StringHeader 结构、不可变性、与 C string/C++ std::string/Redis SDS 跨语言对比
  • 反射底层实现 — interface 底层 iface/eface 结构、TypeOf/ValueOf 原理、类型元数据
  • GC 垃圾回收 — 三色标记 + 混合写屏障、STW 阶段、GC 触发条件、1.3→1.5→1.8 演进史
  • select 底层实现 — 编译器改写、runtime.selectgo 全流程、随机选择与阻塞唤醒
  • defer/panic/recover — _defer 链表/open-coded defer、panic 传播、recover 条件

并发与接口 ​

  • sync 包与接口底层 — Mutex/RWMutex/WaitGroup/Once/Pool/Map实现、interface{iface/eface}底层
  • Context 底层实现 — cancelCtx/timerCtx/valueCtx 源码剖析、取消传播、最佳实践
  • 泛型 — 类型参数/约束、GC Shape 字典传递实现、Map/Filter/Reduce

面试题 ​

面试速查 ​

  • 基础语法速查 — make/new、数组/切片、for range 1.22、struct{}、打印格式、nil 陷阱、init 顺序

相关资源 ​

批注模式

💬 文章评论

暂无评论,来说点什么吧 👇

编程学习笔记