Junior — Middle
Hoe implementeer je het uitwisselen van informatie tussen twee goroutines in de programmeertaal Go?
sobes.tech AI
Antwoord van AI
In Go wordt de informatie-uitwisseling tussen twee goroutines meestal gerealiseerd met behulp van kanalen (channels). Kanalen maken het veilig overdragen van gegevens tussen goroutines mogelijk en synchroniseren ze.
Voorbeeld van uitwisseling via een kanaal:
package main
import (
"fmt"
)
func sender(ch chan<- string) {
ch <- "Hallo van sender"
}
func receiver(ch <-chan string) {
msg := <-ch
fmt.Println("Ontvangen bericht:", msg)
}
func main() {
ch := make(chan string)
go sender(ch)
go receiver(ch)
// Wachten tot de goroutines klaar zijn
var input string
fmt.Scanln(&input)
}
Hier stuurt sender een string naar het kanaal, en receiver leest ervan. Kanalen zorgen voor een veilige gegevensuitwisseling zonder mutexes of andere synchronisatiemechanismen.