Junior — Middle
Welke soorten implementaties van parallelle taken ken je?
sobes.tech AI
Antwoord van AI
In Go kunnen parallelle taken op verschillende manieren worden geïmplementeerd:
-
Goroutines — lichte threads die worden gestart met het sleutelwoord
go. Ze maken het mogelijk functies parallel uit te voeren. -
Kanalen — worden gebruikt voor communicatie en synchronisatie tussen goroutines, waardoor gegevens veilig kunnen worden overgedragen.
-
Worker pools — een groep goroutines die taken uit een wachtrij pakken en verwerken, wat helpt om het aantal gelijktijdige goroutines te controleren.
-
sync.WaitGroup — om te wachten tot een groep goroutines klaar is.
Voorbeeld van het starten van een goroutine en gegevens verzenden via een kanaal:
ch := make(chan int)
// Start een goroutine
go func() {
ch <- 42 // waarde verzenden naar het kanaal
}()
// Ontvangen van waarde uit het kanaal
val := <-ch
fmt.Println(val)