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.