Kas kõik goroutinid peavad vaikimisi käivituma samaaegselt ja paralleelselt?
sobes.tech AI
Vastus AI-lt
Ei, kõik goroutine'id ei ole vaikimisi kohustatud käivituma samaaegselt ja paralleelselt. Goroutine'id on kergekaalulised lõimed, mida planeerib Go planeerija.
Kui käivitate mitu goroutine'i, võivad need täituda järjest või paralleelselt, sõltuvalt saadaval olevate süsteemilõimede arvust (GOMAXPROCS) ja praegusest koormusest.
Vaikimisi, kui GOMAXPROCS on võrdne 1-ga, täidetakse goroutine'id konkurentsivõimeliselt, kuid mitte paralleelselt — see tähendab, et vahetus nende vahel toimub planeerija tasemel, kuid ainult üks täidetakse korraga.
Reaalse paralleelsuse saavutamiseks tuleb GOMAXPROCS suurendada (tavaliselt protsessorituumade arvuga võrdseks). Sel juhul saavad mitu goroutine'i täita samaaegselt erinevatel tuumadel.