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
}