Sobes.tech
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
}