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