用户1839651
Go 里用 context.WithCancel 管理 goroutine 时,为什么总有人忘记调用 cancel
原创
关注作者
腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
用户1839651
社区首页
>
专栏
>
Go 里用 context.WithCancel 管理 goroutine 时,为什么总有人忘记调用 cancel
Go 里用 context.WithCancel 管理 goroutine 时,为什么总有人忘记调用 cancel
用户1839651
关注
发布于 2026-11-07 11:28:57
发布于 2026-11-07 11:28:57
2
0
举报
概述
写 Go 服务时经常遇到这样的代码:HTTP handler 里起一个后台 goroutine 去写日志、发异步任务,handler 返回后 goroutine 还在跑,时间一长内存和文件描述符都涨上去了。问题通常出在 context.WithCancel 的 cancel 函数没有被调用,或者被包在 defer 里但作用域不对。context 的取消信号不会自动传播到所有子 goroutine,
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系
cloudcommunity@tencent.com
删除。
go
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档