Sobes.tech
Principal

Ce sunt goroutine-urile în Go? Care este diferența dintre o goroutine și un fir de sistem de operare?

sobes.tech AI

Răspuns de la AI

Goroutine-urile în Go sunt fire de execuție ușoare gestionate de runtime-ul Go, care permit executarea funcțiilor în paralel.

Diferențele dintre o goroutine și un fir de sistem de operare:

  • Ușor: goroutine-urile ocupă mult mai puțină memorie (de obicei câțiva kilobyte), în timp ce firele OS sunt semnificativ mai mari.
  • Planificare: goroutine-urile sunt planificate de planificatorul Go în interiorul procesului, nu de OS, ceea ce oferă o schimbare de context mai rapidă și mai eficientă.
  • Scalabilitate: se pot lansa mii sau chiar milioane de goroutine simultan, ceea ce nu este posibil cu firele OS din cauza limitărilor de resurse.

Exemplu de creare a unei goroutine:

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

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