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