Junior — Middle
Care sunt avantajele utilizării goroutine-urilor în comparație cu firele de sistem pentru creșterea performanței aplicațiilor?
sobes.tech AI
Răspuns de la AI
Gorutinele din Go au mai multe avantaje față de firele de sistem:
- Ușor de gestionat: gorutinele ocupă mult mai puțină memorie (de obicei câțiva kilobyte), în timp ce firele de sistem necesită mult mai multe resurse.
- Scalabilitate: se pot porni mii sau chiar milioane de gorutine simultan, ceea ce este dificil cu firele.
- Schimb rapid de context: planificatorul Go gestionează eficient gorutinele, schimbând între ele mai rapid decât sistemul de operare între fire.
- Simplitate în sincronizare: canalele încorporate și alte primitive simplifică schimbul de date între gorutine.
Exemplu de creare a unei gorutine:
package main
import (
"fmt"
"time"
)
func sayHello() {
fmt.Println("Salut din goroutine")
}
func main() {
go sayHello() // pornește gorutina
time.Sleep(time.Second) // așteaptă ca gorutina să se execute
}