Назад к вопросам
Middle+
4
Что произойдёт при чтении из пустого канала, если канал инициализирован и не закрыт?
Компании, где спрашивали
ТБанк
Ответ от нейросети
sobes.tech AI
Если канал в Go инициализирован (создан) и не закрыт, но в нем нет данных, то операция чтения из него будет блокирующей. Это значит, что горутина, которая пытается прочитать из канала, приостановится и будет ждать, пока кто-то не запишет в этот канал значение.
Пример:
ch := make(chan int) // создан пустой канал
// Чтение из канала
val := <-ch // горутина заблокируется здесь, пока не появится значение
Если в другом месте программы не будет записи в канал, горутина останется заблокированной навсегда.