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