Back to questions
Касперский
Senior
3
Каков будет результат записи в закрытый канал? Дедлок, паника или операция записи вернёт ошибку?
Companies where asked
Answer from AI
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
Таким образом, операция записи в закрытый канал не возвращает ошибку и не блокируется — она сразу вызывает панику. Чтобы избежать этого, нужно гарантировать, что запись происходит только в открытый канал, например, используя дополнительные флаги или синхронизацию.