Вопрос: Как избежать утечек goroutine (goroutine leak) при каналах?

Python Middle Без компании
Вопрос: Как избежать утечек goroutine (goroutine leak) при каналах?
Ответы
```go ctx, cancel := context.WithCancel(context.Background()) defer cancel() out := make(chan int) go func() { defer close(out) for { select { case <-ctx.Done(): return case out <- 1: // produced } } }() // если consumer не читает, producer зависнет без select/ctx ``` **Как это работает:** если отправитель блокируется на записи, а получатель перестал читать, goroutine может зависнуть навсегда. Нужны отмена/буфер/дренаж.