Назад к вопросам
Senior
14
Возможна ли у нас сейчас паника записи в закрытый канал?
Компании, где спрашивали
Cloud.ru
Ответ от нейросети
sobes.tech AI
В Go паника записи в закрытый канал возможна и является распространённой ошибкой.
Если попытаться отправить значение в канал, который уже закрыт, произойдёт panic с сообщением send on closed channel.
Пример:
ch := make(chan int)
close(ch)
ch <- 1 // panic: send on closed channel
Чтобы избежать паники, перед записью в канал нужно гарантировать, что он не закрыт. Обычно это достигается:
- Контролем закрытия канала из одного места (например, только отправитель закрывает канал).
- Использованием дополнительных сигналов или флагов для проверки состояния.
Паника записи в закрытый канал — индикатор ошибки в логике синхронизации между горутинами, её нужно отлавливать и исправлять на уровне архитектуры приложения.