Junior — Middle
Je počet počtu vytvářených gorutin spojen s počtem jader v procesoru?
sobes.tech AI
Odpověď od AI
Počet gorutin vytvářených v Go není přímo spojen s počtem jader procesoru. Můžete vytvořit mnoho gorutin — jsou to lehké vlákna řízená runtime prostředím Go, a jejich počet je hlavně omezen dostupnou pamětí a logikou programu.
Počet jader ovlivňuje počet vláken operačního systému, které mohou být současně spuštěny, a parametr GOMAXPROCS, který určuje maximální počet vláken vykonávajících gorutiny paralelně. Ale počet gorutin obvykle výrazně převyšuje počet jader, protože jsou efektivně plánovány a přepínány v rámci runtime.
Příklad:
runtime.GOMAXPROCS(4) // Používáme 4 jádra
for i := 0; i < 1000; i++ {
go func(n int) {
fmt.Println("Goroutine", n)
}(i)
}
time.Sleep(time.Second)
Zde je vytvořeno 1000 gorutin, i když je k dispozici pouze 4 jádra.