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 val := <-ch1:
    fmt.Println("Получено от ch1:", val)
case val := <-ch2:
    fmt.Println("Получено от ch2:", val)
}

По този начин, select блокира, докато не се появят данни в някой от каналите, и след това изпълнява съответния случай. Това позволява ефективно обработване на множество потоци от данни едновременно.