Junior — Middle
Vai radīto gorutinu skaits ir saistīts ar procesora kodolu skaitu?
sobes.tech AI
Atbilde no AI
Go izveidoto gorutīnu skaits nav tieši saistīts ar procesora kodolu skaitu. Jūs varat izveidot ļoti daudz gorutīnu — tās ir vieglas pavedieni, kurus pārvalda Go izpildlaiks, un to skaits galvenokārt ir ierobežots ar pieejamo atmiņu un programmas loģiku.
Kodu skaits ietekmē operētājsistēmas pavedienu skaitu, kas var darboties vienlaikus, kā arī GOMAXPROCS parametru, kas nosaka maksimālo pavedienu skaitu, kas paralēli izpilda gorutinas. Bet gorutīnu skaits parasti ievērojami pārsniedz kodolu skaitu, jo tās efektīvi plāno un pārslēdzas iekšā izpildlaikā.
Piemērs:
runtime.GOMAXPROCS(4) // Izmantojam 4 kodolus
for i := 0; i < 1000; i++ {
go func(n int) {
fmt.Println("Goroutine", n)
}(i)
}
time.Sleep(time.Second)
Šeit tiek izveidotas 1000 gorutīnas, lai gan ir tikai 4 kodoli.