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
}