Sobes.tech
Junior — Middle

Care sunt avantajele utilizării goroutines în comparație cu firele (threads)?

sobes.tech AI

Răspuns de la AI

Gorutinele în Go sunt fire ușoare gestionate de runtime-ul Go, nu de sistemul de operare. Avantajele lor comparativ cu firele clasice:

  • Consumul mai mic de memorie: Gorutinele ocupă câțiva kilobyți de memorie, în timp ce firele — megabytes.
  • Creare și comutare rapidă: Pornirea și comutarea între gorutine se face mult mai rapid.
  • Simplitate în sincronizare: Go oferă canale pentru schimbul sigur de date între gorutine, ceea ce simplifică programarea concurentă.
  • Scalabilitate: Se pot lansa mii sau chiar milioane de gorutine simultan.

Exemplu de creare a unei gorutine:

func sayHello() {
    fmt.Println("Salut din gorutină")
}

func main() {
    go sayHello() // lansăm gorutina
    time.Sleep(time.Second) // așteptăm pentru ca gorutina să se execute
}