Назад к вопросам
Yadro
Middle+
4
При каких условиях чтение из канала заблокируется навсегда? Что произойдёт при записи в nil-канал? При записи в закрытый канал?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
-
Чтение из канала заблокируется навсегда, если канал пуст и никто не собирается писать в него (например, все отправители закрыты или отсутствуют).
-
Запись в nil-канал (канал, равный nil) всегда блокируется навсегда, так как nil-канал не инициализирован и не может принимать данные.
-
Запись в закрытый канал приводит к панике (panic) в Go, так как это запрещено и считается ошибкой времени выполнения.
Пример:
var ch chan int // nil-канал
// <-ch // чтение из nil-канала блокируется навсегда
// ch <- 1 // запись в nil-канал блокируется навсегда
ch = make(chan int)
close(ch)
// ch <- 2 // panic: send on closed channel