Sobes.tech
Middle+

Wat zijn asynchroniteit, paralleliteit en gelijktijdigheid in de context van Go?

sobes.tech AI

Antwoord van AI

In de context van Go:

  • Asynchroniciteit — het uitvoeren van operaties zonder het hoofdproces te blokkeren, meestal via goroutines en kanalen. Hiermee kunnen taken worden gestart die onafhankelijk kunnen worden uitgevoerd en niet hoeven te wachten op hun voltooiing.

  • Parallelisme — gelijktijdige uitvoering van meerdere taken op verschillende CPU-kernen. In Go wordt dit bereikt door de scheduler van goroutines, die ze verdeelt over systeemthreads.

  • Concurrerende — het vermogen van een programma om meerdere taken te beheren die gelijktijdig of achtereenvolgens kunnen worden uitgevoerd, terwijl een correcte toegang tot gedeelde bronnen wordt gewaarborgd.

Voorbeeld van een goroutine:

func worker(id int) {
    fmt.Printf("Werker %d gestart\n", id)
    // werk
}

func main() {
    for i := 1; i <= 5; i++ {
        go worker(i) // asynchrone start
    }
    time.Sleep(time.Second) // wachten op voltooiing
}