Sobes.tech
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.