Назад к вопросам
Junior — Middle
89
Каким образом организовать одновременное чтение данных из нескольких каналов?
Компании, где спрашивали
Кадровое агентство BWG
Ответ от нейросети
sobes.tech AI
Для одновременного чтения из нескольких каналов в Go обычно используют оператор select. Он позволяет ждать сразу несколько каналов и реагировать на первый, который станет доступен.
Пример:
ch1 := make(chan int)
ch2 := make(chan int)
go func() { ch1 <- 1 }()
go func() { ch2 <- 2 }()
select {
case msg1 := <-ch1:
fmt.Println("Получено из ch1:", msg1)
case msg2 := <-ch2:
fmt.Println("Получено из ch2:", msg2)
}
Таким образом, select позволяет эффективно обрабатывать данные из нескольких источников без блокировки.