首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Go 中 Context 取消没有生效?检查你 defer 的位置

Go 中 Context 取消没有生效?检查你 defer 的位置

作者头像
用户12771345
发布于 2026-10-28 08:37:42
发布于 2026-10-28 08:37:42
730
举报
概述
写 Go 服务时,context.WithCancel 基本上每天都会用到,尤其是处理下游 HTTP 请求、数据库查询或者启动后台 goroutine 的场景。但有一个很隐蔽的坑:如果你在函数入口 defer cancel(),然后在函数内部启动了一个需要在这个函数返回后继续运行的 goroutine,这个 goroutine 会立刻收到取消信号,导致下游调用莫名其妙失败。更常见的情况是:你期望某

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档