Sobes.tech
Junior — Middle

Mi a különbség a goroutine és a rendszer szál között a feladatok végrehajtásának kontextusában?

sobes.tech MI

Válasz az MI-től

A gorutina egy könnyű, a Go (runtime) futtatókörnyezet által kezelt végrehajtási egység, amely nagyon kevés memóriát használ, és egyszerre sok példányban indítható. A rendszer szál (thread) egy nehezebb ütemezési egység az operációs rendszer részéről.

Fő különbségek:

  • A gorutinok sokkal könnyebbek az erőforrások szempontjából, mint a rendszer szálak.
  • A gorutinok ütemezése a Go runtime belsejében történik, nem az OS által.
  • Ezrek dolgozhatnak egyszerre, míg a rendszer szálak száma általában kevesebb a létrehozási és váltási költségek miatt.

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

func feladat() {
    fmt.Println("Feladat végrehajtása")
}

func main() {
    go feladat() // gorutina indítása
    time.Sleep(time.Second) // várunk, hogy a gorutina befejeződjön
}

Így a gorutinek lehetővé teszik sok feladat hatékony párhuzamos végrehajtását kisebb költséggel.