Junior — Middle
Ce face ca goroutine-urile să fie mai eficiente în comparație cu firele tradiționale?
sobes.tech AI
Răspuns de la AI
Gorutinele în Go sunt mai eficiente comparativ cu firele tradiționale datorită mai multor caracteristici cheie:
- Ușor de greutate: Gorutinele ocupă foarte puțină memorie (de obicei aproximativ 2 KB de stivă), în timp ce firele sistemului necesită mult mai multă memorie.
- Planificator la nivel de limbaj: Go are propriul său planificator de gorutine, care distribuie eficient execuția lor pe firele sistemului, permițând rularea a mii de gorutine simultan fără costuri semnificative.
- Creare și schimb de context rapide: Crearea și schimbarea între gorutine se face mult mai rapid decât între firele OS, reducând costurile multitasking-ului.
Exemplu de creare a unei gorutine:
func sayHello() {
fmt.Println("Salut din gorutină")
}
func main() {
go sayHello() // pornire gorutină
time.Sleep(time.Second) // așteaptă pentru ca gorutina să se execute
}