Junior — Middle
Hoe onderscheid je kanalen die worden gebruikt voor gegevensoverdracht tussen threads van goroutines qua doel en werking?
sobes.tech AI
Antwoord van AI
In Go zijn goroutines lichte uitvoeringsstromen die worden gestart met het sleutelwoord go. Ze voeren functies of methoden parallel uit.
Kanalen zijn communicatiemiddelen tussen goroutines, waarmee gegevens veilig kunnen worden overgedragen en hun werk gesynchroniseerd kan worden.
Belangrijkste verschillen:
- Goroutines zijn code-uitvoerders die parallelle taken starten.
- Kanalen zijn datatransmissiekanalen tussen goroutines, die het uitwisselen van berichten en synchronisatie mogelijk maken.
Voorbeeld:
func() {
ch <- 42 // waarde naar kanaal sturen
}()
waarde := <-ch // waarde van kanaal ontvangen
Zo zijn goroutines de "werknemers" en de kanalen de "post" voor het uitwisselen van berichten tussen hen.