Sobes.tech
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
}