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