Sobes.tech
Junior — Middle

Kaip įgyvendinama ir valdoma kelių goroutine'ų darbo programa?

sobes.tech AI

Atsakymas iš AI

Go kalboje goroutines yra lengvi srautai, kuriuos valdo Go vykdymo aplinka, o ne operacinė sistema. Kai programoje sukuriama daug goroutine, Go planuotojas jų vykdymą paskirsto ribotame sisteminių srautų skaičiuje (M), naudodamas M:N modelį (M sisteminių srautų N goroutine-ų atžvilgiu).

Go planuotojas paskirsto goroutine-ų tarp srautų, labai greitai ir efektyviai keisdamas kontekstą. Tai leidžia paleisti tūkstančius ar net milijonus goroutine-ų su mažais atminties ir laiko kaštais.

Goroutine kūrimo pavyzdys:

func sayHello() {
    fmt.Println("Sveiki iš goroutine")
}

func main() {
    go sayHello() // paleisti goroutine
    time.Sleep(time.Second) // duoti laiko goroutine vykdyti
}