Sobes.tech
Junior

Wat in Go zorgt voor thread safety?

sobes.tech AI

Antwoord van AI

Gelijkwaardigheid in Go wordt verzekerd door verschillende mechanismen:

  • Goroutines — lichte threads die het uitvoeren van code parallel mogelijk maken.
  • Kanalen — het belangrijkste instrument voor veilige gegevensuitwisseling tussen goroutines zonder gedeelde variabelen.
  • Pakket sync — bevat synchronisatie-primitieven zoals Mutex om kritieke secties te blokkeren, RWMutex om lees- en schrijfsleutels te scheiden, en WaitGroup om te wachten op de voltooiing van een groep goroutines.

Voorbeeld van het gebruik van een mutex om een gedeelde bron te beschermen:

import (
    "sync"
)

var mu sync.Mutex
var teller int

func verhoog() {
    mu.Lock()
    defer mu.Unlock()
    teller++
}

Op deze manier wordt de veiligheid in gelijktijdigheid in Go bereikt door correct gebruik van goroutines, kanalen en synchronisatie-primitieven uit het sync-pakket.