Junior — Middle
Kako je implementiran i upravljan rad više gorutina u aplikaciji?
sobes.tech АИ
Одговор од АИ
U Go, goroutine-ovi su lagani niti koje upravlja okruženje za izvršavanje Go, a ne operativni sistem. Kada aplikacija kreira mnogo goroutine-ova, planer Go raspoređuje njihovo izvršavanje na ograničen broj sistemskih niti (M), koristeći model M:N (M sistemskih niti na N goroutine-ova).
Planer Go distribuira goroutine-ove između niti, menjajući kontekst vrlo brzo i efikasno. Ovo omogućava pokretanje hiljada, pa čak i miliona goroutine-ova sa niskim troškovima u memoriji i vremenu.
Primer kreiranja goroutine:
func sayHello() {
fmt.Println("Zdravo iz goroutine")
}
func main() {
go sayHello() // pokretanje goroutine
time.Sleep(time.Second) // dajemo vremena goroutine-u da se izvrši
}