Sobes.tech
Junior — Middle

Ar visi gorutinai turi būti paleisti vienu metu ir lygiagrečiai pagal numatytuosius nustatymus?

sobes.tech AI

Atsakymas iš AI

Ne, visi goroutine nėra privalomi pradėti vienu metu ir paraleliai pagal numatytuosius nustatymus. Goroutine yra lengvos sruogos, kurias planuoja Go planuotojas.

Kai paleidžiate kelias goroutine, jos gali būti vykdomos seka arba paraleliai, priklausomai nuo prieinamų sisteminių sruogų skaičiaus (GOMAXPROCS) ir esamo apkrovimo.

Pagal numatytuosius nustatymus, jei GOMAXPROCS yra lygus 1, goroutine vykdomos konkurencingai, bet ne paraleliai — tai reiškia, kad perjungimas tarp jų vyksta planuotojo lygyje, bet tik viena vykdoma vienu metu.

Norint pasiekti tikrą paralelizmą, reikia padidinti GOMAXPROCS (dažniausiai lygų procesoriaus branduolių skaičiui). Tuomet keli goroutine gali būti vykdomi vienu metu skirtinguose branduoliuose.