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.