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