Sobes.tech
Junior — Middle

Как да организираме едновременото четене на данни от няколко канала?

sobes.tech AI

Отговор от 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 позволява ефективна обработка на данни от няколко източника без блокиране.