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 顺序
登录后即可发表评论 👇