Sobes.tech
Junior — Middle

Kako se vrši upravljanje i raspodela zadataka između gorutina u jeziku Go?

sobes.tech АИ

Одговор од АИ

U jeziku Go, upravljanje i raspodela zadataka između gorutina vrši se putem scheduler-a (planera) koji je ugrađen u runtime Go-a. Gorutine su lagani niti koje se pokreću pomoću ključne reči go.

Scheduler Go-a raspoređuje gorutine na sistemske niti (OS threads) i upravlja njihovim izvršavanjem, obezbeđujući konkurentnost i paralelizam. Koristi model M:N, gde je M broj sistemskih niti, a N broj gorutina.

Primer kreiranja gorutine:

func sayHello() {
    fmt.Println("Zdravo iz goroutine")
}

func main() {
    go sayHello() // pokreće gorutinu
    time.Sleep(time.Second) // čeka da gorutina završi
}

Na ovaj način, programer jednostavno pokreće gorutinu, a runtime Go-a raspoređuje zadatke i prebacuje između njih.