首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
Go源码
Soofjan
创建于2026-03-12
订阅专栏
Go 1.25的源码阅读,和Go知识整理配套一起阅读,理解更深刻
暂无订阅
共22篇文章
创建于2026-03-12
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Go interface 源码:iface、itab、getitab 与动态派发
基于 Go 1.25 runtime,从 iface/eface、ITab 写到 getitab、itabInit、convT*、断言 assertE2I* 与 typeAssert/interfac
Go 内存回收(4):GC 源码-清扫
聚焦标记结束后的清扫路径,梳理 span 回收、懒惰清扫与后台清扫协同机制,理解可复用槽位如何回到分配体系并影响下一轮内存行为。
Go 内存回收(3):GC 源码-三色与写屏障
从三色可达性不变式出发,拆解混合写屏障在并发改指针时的补偿逻辑,理解 Go 为什么宁可产生浮动垃圾,也要确保标记正确性与内存安全。
Go 内存回收(2):GC 源码-并发标记与 Assist
深入并发标记主循环,说明后台 Worker 与 Assist 的配比机制与债务模型,解释 Go 如何在业务分配与标记进度之间做动态平衡,避免堆增长失控。
Go 内存回收-GC 源码1-触发与阶段
对照 runtime 触发路径,梳理 gcStart 相关条件判断与状态切换,理解一轮 GC 如何被拉起、如何进入各阶段,以及这些切换对业务线程的影响边界。
Go 内存管理(2):内存分配源码
继续沿分配流程追踪大对象与特殊分配分支,补齐从页分配到账本更新的关键细节,串联分配器在性能与碎片控制之间的权衡点。
Go 内存管理(1):内存分配源码
从 runtime 分配入口出发,结合 mcache、mcentral、mheap 与 mspan 的协作路径,梳理小对象分配的关键分支与无锁快路径,理解一次堆分配如何被层层路由。
Go select 源码笔记:selectgo、scase 与 pollorder / lockorder
对照 runtime/select.go,从 scase 与 order 缓冲区写起,梳理 pollorder 随机插入、lockorder 按 channel 地址排序加锁,以及快路径与阻塞路径里
GMP 源码(2):调度循环、抢占与 syscall
从 schedule 主循环、findRunnable 的找活顺序开始,串起 gopark/goready、sysmon 的抢占/retake,以及 exitsyscall 的快慢路径,帮助你把 pr
GMP 源码(1):结构、启动与创建 G
从 G/M/P/schedt 的类型字段开始,跟随 schedinit、newproc、gfget、runqput 等路径理解 Go 调度器如何搭舞台并创建第一批可运行 goroutine。
Go channel源码
理解 Go channel 的源码与实现机制,并深入学习 channel 的源码实现方式。。。。。。。
sync.RWMutex 源码解析
从 RWMutex 的 readerCount 编码开始,解释 RLock/RUnlock 的阻塞条件、写锁 Lock 的“等锁”过程。
sync.Mutex源码
理解 Go sync.Mutex 的源码与实现机制,学习 sync.Mutex 的用法和实现原理。学习如何使用 sync.Mutex 来实现并发编程。
Go Context源码导读
理解 Go `context` 的源码与实现机制,学习 context 树如何传播取消/截止信号、Value 如何沿父链传递请求范围
Sync.Map 详解以及源码
对比 sync.Map 与普通 map+锁的取舍,给出适用/不适用场景;拆解 HashTrieMap 的核心结构与查找、插入、扩展流程,并补充常用 API、性能特点与常见误区。
Go Map SwissTable(7): Iter 迭代流程
梳理迭代器的创建与遍历路径:目录与表的遍历顺序、组内扫描与空槽跳过;说明并发修改风险、随机化遍历与一致性取舍。
Go Map SwissTable(6): Rehash 扩容与再哈希
梳理扩容与再哈希路径:负载因子/探测长度触发条件,目录与表增长策略,迁移与重散列流程;并说明局部与全局深度变化的影响。
Go Map SwissTable(5): DeleteMap 删除流程
梳理删除路径:定位元素后更新控制字节、设置 tombstone 与计数调整;说明组内探测对删除的影响,以及何时触发清理或再哈希相关逻辑。
Go Map SwissTable(4): ModMap 插入与更新
梳理插入/更新路径:从哈希定位到组内探测、空槽与 tombstone 处理、元素写入与计数更新;并覆盖负载因子触发扩容与相关边界条件。
Go Map SwissTable(3): GetMap 查找流程
梳理 map 查找路径:从 key 哈希到目录定位、表选择与组内探测;说明控制字节匹配、并行筛选与命中/未命中分支,以及负载因子对查找探测长度的影响。
下一页