Go context

golang/context2026-10-16 14:45:30

Go context在调用链中传递取消、截止时间及请求范围的数据,常用于控制一次请求派生工作的生命周期。

传播与清理

下游函数通常显式接收 Context。创建 WithCancel 或带超时的子上下文后,应在不再需要时调用 cancel,释放相关资源;取消是通知,接收方仍需观察并停止工作。

使用边界

Context 的值用于请求范围的元数据,不应作为任意可选参数容器。取消不意味着数据库已经回滚或远程写入未发生,仍需按具体 API 语义处理不确定结果。

多个 goroutine 可以共享 Context,但它不会自动保证应用中其他共享对象的线程安全。

参考资料

本页目录