Sobes.tech
Junior — Middle

Hogyan szervezhető meg több csatornából történő egyidejű adatolvasás?

sobes.tech MI

Válasz az MI-től

Go nyelvben az egyszerre több csatornából történő olvasáshoz általában a select operátort használják. Ez lehetővé teszi több csatorna várását egyszerre, és az első elérhető csatornára való reagálást.

Példa:

ch1 := make(chan int)
ch2 := make(chan int)

go func() { ch1 <- 1 }()
go func() { ch2 <- 2 }()

select {
case msg1 := <-ch1:
    fmt.Println("Megkapva ch1-ből:", msg1)
case msg2 := <-ch2:
    fmt.Println("Megkapva ch2-ből:", msg2)
}

Így a select hatékonyan kezeli az adatokat több forrásból anélkül, hogy blokkolna.