Sobes.tech
Junior — Middle

Hoe wordt het lezen van gegevens uit meerdere threads of kanalen gelijktijdig uitgevoerd?

sobes.tech AI

Antwoord van AI

In Go wordt de operator select gebruikt om gelijktijdig uit meerdere kanalen te lezen. Het stelt je in staat om te wachten op gegevens uit meerdere kanalen en te reageren op de eerste die beschikbaar is.

Voorbeeld:

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

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

select {
case val := <-ch1:
    fmt.Println("Ontvangen uit ch1:", val)
case val := <-ch2:
    fmt.Println("Ontvangen uit ch2:", val)
}

Op deze manier blokkeert select totdat er gegevens in een van de kanalen zijn, en voert vervolgens de bijbehorende case uit. Dit maakt het mogelijk om meerdere datastromen tegelijk efficiënt te verwerken.