Junior — Middle
Ako je implementovaná a riadená práca viacerých gorútin v aplikácii?
sobes.tech AI
Odpoveď od AI
V Go sú goroutine ľahké vlákna spravované prostredím runtime Go, nie operačným systémom. Keď aplikácia vytvorí veľa goroutine, plánovač Go ich rozdeľuje na obmedzený počet systémových vlákien (M) pomocou modelu M:N (M systémových vlákien na N goroutine).
Plánovač Go rozdeľuje goroutine medzi vlákna, veľmi rýchlo a efektívne prepína kontext. To umožňuje spustiť tisíce alebo aj milióny goroutine s nízkymi nákladmi na pamäť a čas.
Príklad vytvorenia goroutine:
func sayHello() {
fmt.Println("Ahoj z goroutine")
}
func main() {
go sayHello() // spustenie goroutine
time.Sleep(time.Second) // dáme čas goroutine na vykonanie
}