Sobes.tech
Junior — Middle

Hogyan valósul meg és kezelik több goroutine munkáját az alkalmazásban?

sobes.tech MI

Válasz az MI-től

A Go-ban a goroutine-ok könnyű szálak, amelyeket a Go futásideje kezel, nem pedig az operációs rendszer. Amikor egy alkalmazás sok goroutine-t hoz létre, a Go futásideje ütemezi azok végrehajtását egy korlátozott számú rendszer szálon (M), az M:N modell használatával (M rendszer szál N goroutine-hoz).

A Go ütemezője elosztja a goroutine-okat a szálak között, nagyon gyorsan és hatékonyan váltogatva a kontextust. Ez lehetővé teszi ezer vagy akár millió goroutine futtatását alacsony memória- és időráfordítással.

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

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

func main() {
    go sayHello() // goroutine indítása
    time.Sleep(time.Second) // időt adunk a goroutine-nak a végrehajtáshoz
}