首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Go 里用 context.WithCancel 管理 goroutine 时,为什么总有人忘记调用 cancel

Go 里用 context.WithCancel 管理 goroutine 时,为什么总有人忘记调用 cancel

作者头像
用户1839651
发布于 2026-11-07 11:28:57
发布于 2026-11-07 11:28:57
20
举报
概述
写 Go 服务时经常遇到这样的代码:HTTP handler 里起一个后台 goroutine 去写日志、发异步任务,handler 返回后 goroutine 还在跑,时间一长内存和文件描述符都涨上去了。问题通常出在 context.WithCancel 的 cancel 函数没有被调用,或者被包在 defer 里但作用域不对。context 的取消信号不会自动传播到所有子 goroutine,

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

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

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