RSS
菜单

Go goroutine 泄漏如何避免?5 种泄漏场景与排查方法

泄漏场景:① goroutine 阻塞在 channel 收发(无配对);② 死循环未监听退出信号;③ time.Timer 未 Stop;④ 数据库/HTTP 连接未关闭。避免方法:① 用 context 取消:goroutine 内 select 监听 ctx.Done();② 超时控制:带超时的 select 或 WithTimeout;③ 生产者关闭 channel 通知退出(for range ch 自动退出);④ errgroup 管理 goroutine 生命周期;⑤ 用 goleak 库测试时断言无泄漏;⑥ pprof goroutine 视图检查。

下载推广海报

圈内讨论推广海报

《Go goroutine 泄漏如何避免?5 种泄漏场景与排查方法》完整推广海报
一起交流

全部回复 0

分享经验,让问题更进一步

讨论,从你的观点开始

还没有回复,欢迎补充经验或分享不同的思路。