用户12771345
Go 中 Context 取消没有生效?检查你 defer 的位置
原创
关注作者
腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
用户12771345
社区首页
>
专栏
>
Go 中 Context 取消没有生效?检查你 defer 的位置
Go 中 Context 取消没有生效?检查你 defer 的位置
用户12771345
关注
发布于 2026-10-28 08:37:42
发布于 2026-10-28 08:37:42
73
0
举报
概述
写 Go 服务时,context.WithCancel 基本上每天都会用到,尤其是处理下游 HTTP 请求、数据库查询或者启动后台 goroutine 的场景。但有一个很隐蔽的坑:如果你在函数入口 defer cancel(),然后在函数内部启动了一个需要在这个函数返回后继续运行的 goroutine,这个 goroutine 会立刻收到取消信号,导致下游调用莫名其妙失败。更常见的情况是:你期望某
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系
cloudcommunity@tencent.com
删除。
go
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档