Junior — Middle
Hogyan történik az adatok olvasása több szálból vagy csatornából egyidejűleg?
sobes.tech MI
Válasz az MI-től
Go nyelvben a select operátor segítségével lehet egyszerre több csatornáról olvasni. Ez lehetővé teszi, hogy több csatornáról várjunk adatokat, és az első elérhetőre reagáljunk.
Példa:
ch1 := make(chan int)
ch2 := make(chan int)
go func() { ch1 <- 1 }()
go func() { ch2 <- 2 }()
select {
case val := <-ch1:
fmt.Println("Kaptam ch1-ről:", val)
case val := <-ch2:
fmt.Println("Kaptam ch2-ről:", val)
}
Így a select blokkol, amíg valamelyik csatornán nem jelennek meg adatok, majd végrehajtja a megfelelő esetet. Ez hatékonyan kezeli több adatfolyamot egyszerre.