首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Golang 中 time.Timer 的正确释放方式:避免 goroutine 泄漏与 Reset 陷阱

Golang 中 time.Timer 的正确释放方式:避免 goroutine 泄漏与 Reset 陷阱

作者头像
超哥前端记录
发布于 2026-11-07 10:35:47
发布于 2026-11-07 10:35:47
840
举报
概述
在 Go 里用 time.After 或者 time.NewTimer 做超时控制几乎是日常操作,但真正把 Timer 用对的人并不多。常见问题集中在两块:一是 time.After(d) 在 select 提前返回时计时器并不会被回收,高频率调用会持续堆积临时对象,直到 d 到期才释放;二是 Timer.Reset 的语义和直觉不符,如果不清空 channel 就重置,很可能读到上一次已经触发的

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

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

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