Sobes.tech
Senior

Heb je een idee van het verschil tussen stroom en proces?

sobes.tech AI

Antwoord van AI

Het proces is een onafhankelijke uitvoeringsunit met zijn eigen adresruimte, bronnen en toestand. Een thread (goroutine in Go) is een lichtere eenheid binnen het proces, die geheugen en bronnen deelt, maar zijn eigen stack en uitvoeringscontext heeft.

In Go is een goroutine een lichte thread beheerd door de Go-runtime, waarmee duizenden parallelle taken met minimale kosten kunnen worden uitgevoerd in vergelijking met systeemthreads.

Belangrijkste verschillen:

  • Het proces heeft een aparte adresruimte, threads binnen het proces delen geheugen.
  • Het creëren van een proces is resource-intensiever dan het creëren van een thread.
  • In Go worden goroutines op taalniveau beheerd, niet door het besturingssysteem.

Voorbeeld van het maken van een goroutine in Go:

func sayHello() {
    fmt.Println("Hallo vanaf de goroutine")
}

func main() {
    go sayHello() // start de functie in een goroutine
    time.Sleep(time.Second) // wacht zodat de goroutine kan voltooien
}