Go

Go语言

Go Context 超时控制:从源码到实战一次讲透

Go 的 context 包是并发控制和超时管理的标准方案。本文从一个真实的生产级场景出发,层层拆解 WithCancel、WithTimeout、WithDeadline 的底层原理,从源码角度解释 cancel 函数如何传播、timer 如何触发、父子 Context 如何级联取消。读完你不仅能正确使用 Context 做超时控制,还能理解 goroutine 泄漏的根因并彻底避免。

Go Context 超时控制:让 Goroutine 该停就停

Go 的 context 包是所有后端开发者的必修课,但很多人只会用 WithTimeout 却不懂背后的取消传播机制。本文从一个真实的 HTTP 请求超时场景切入,深入拆解 Context 的树形结构、WithCancel/WithTimeout 的源码实现、取消信号如何通过 propagateCancel 层层传递,以及你最该避开的几大坑。3 个完整可运行示例 + 源码级分析,帮你彻底掌握 Go 并发控制的核心。

Go Context 超时与取消:从源码到陷阱的深度拆解

你用过 context.WithTimeout,但你知道 cancel 函数不调用的后果吗?本文从一段真实线上事故出发,深入 Go context 的接口设计、四种实现(emptyCtx/cancelCtx/timerCtx/valueCtx)以及 propagateCancel 的取消传播机制,手撕源码 + 3 个完整示例 + 3 个常见陷阱,帮你彻底掌握 Go 并发控制的核心武器。

Go GMP 调度模型:Goroutine 如何被高效调度

本文深入剖析 Go 语言并发基石——GMP 调度模型。从实际问题场景出发,拆解 G(Goroutine)、M(系统线程)、P(逻辑处理器)三个核心角色,讲解 Work Stealing、Hand Off、抢占式调度等关键机制,配合源码级别的代码分析和可运行的示例,帮你彻底搞懂 Goroutine 的调度全流程。

Go defer 执行顺序与底层机制:从源码到陷阱全解

defer 是 Go 中最常用也最容易踩坑的关键字之一。本文从实际场景出发,深入剖析 defer 的 LIFO 执行顺序、参数预计算机制、与 return 的交互细节,再带你走进 Go 运行时源码,理解堆分配、栈分配和开放编码三种实现方式的演进历程。读完你将彻底掌握 defer 的执行语义,告别生产环境中的 defer 陷阱。