Sobes.tech
Junior — Middle

Vai visas goroutines pēc noklusējuma jāuzsāk vienlaikus un paralēli?

sobes.tech AI

Atbilde no AI

Nē, visi goroutine nav obligāti jāuzsāk vienlaikus un paralēli pēc noklusējuma. Goroutine ir vieglas pavedieni, kurus plāno Go plānotājs.

Kad sākat vairākus goroutine, tie var tikt izpildīti secīgi vai paralēli, atkarībā no pieejamā sistēmas pavedienu skaita (GOMAXPROCS) un pašreizējās slodzes.

Pēc noklusējuma, ja GOMAXPROCS ir vienāds ar 1, goroutine tiks izpildīti konkurētspējīgi, bet ne paralēli — tas nozīmē, ka pārslēgšanās starp tiem notiek plānotāja līmenī, bet tikai viens tiek izpildīts vienlaikus.

Lai sasniegtu patiesu paralēlismu, ir jāpalielina GOMAXPROCS (parasti līdz procesora kodolu skaitam). Tad vairāki goroutine var tikt izpildīti vienlaikus dažādos kodolos.