Sobes.tech
Junior — Middle

El tudná magyarázni a könnyű szálak fogalmát és azok különbségét a szokásos szálaktól?

sobes.tech MI

Válasz az MI-től

A könnyű szálak (goroutine-ok Go-ban) egy absztrakció a párhuzamos kód végrehajtására, amely könnyebb és erőforrásokban hatékonyabb, mint a hagyományos rendszer szálak.

Különbségek:

  • Erőforrások: a goroutine-ok sokkal kevesebb memóriát foglalnak (általában néhány kilobájt), míg egy rendszer szál sokkal többet (általában megabájtokat).
  • Ütemezés: a goroutine-okat a Go ütemező tervezi a folyamaton belül, nem az operációs rendszer, ami gyors váltást tesz lehetővé közöttük.
  • Létrehozás: egy goroutine indítása nagyon gyors és olcsó, ezrek vagy akár milliók is létrehozhatók egyszerre.

Goroutine létrehozásának példája:

func sayHello() {
    fmt.Println("Helló a goroutine-ból")
}

func main() {
    go sayHello() // elindítja a függvényt egy külön goroutine-ban
    time.Sleep(time.Second) // vár, hogy a goroutine befejeződjön
}

Így a könnyű szálak lehetővé teszik a párhuzamosság hatékony kihasználását nagy költségek nélkül.