面试真题

Go · 中等 · 金山

什么情况下会导致goroutine泄露?

中等 Go 🎤 金山
参考答案
结论:Goroutine泄露指协程因阻塞无法退出,持续占用内存。常见情况:1. 向无接收者的channel发送或从无发送者接收,永久阻塞;2. range遍历未关闭的channel永不结束;3. select无default且所有case阻塞;4. 互斥锁未解锁导致其他协程等待;5. 无限循环缺少退出条件或context未取消。避免:使用context.WithCancel控制生命周期、channel配对生产消费、设timeout、用select+default或ctx.Done()。
题目整理自公开面经,答案由校招宝自研生成,仅供参考