Le nombre de goroutines créées est-il lié au nombre de cœurs dans le processeur?
sobes.tech IA
Réponse de l'IA
Le nombre de goroutines créées en Go n'est pas directement lié au nombre de cœurs du processeur. Vous pouvez créer beaucoup de goroutines — ce sont des threads légers gérés par le runtime de Go, et leur nombre est principalement limité par la mémoire disponible et la logique du programme.
Le nombre de cœurs influence le nombre de threads du système d'exploitation pouvant s'exécuter simultanément, ainsi que le paramètre GOMAXPROCS, qui définit le nombre maximal de threads exécutant des goroutines en parallèle. Mais le nombre de goroutines dépasse généralement largement le nombre de cœurs, car elles sont planifiées et basculent efficacement à l'intérieur du runtime.
Exemple:
runtime.GOMAXPROCS(4) // Utiliser 4 cœurs
for i := 0; i < 1000; i++ {
go func(n int) {
fmt.Println("Goroutine", n)
}(i)
}
time.Sleep(time.Second)
Ici, 1000 goroutines sont créées, alors qu'il n'y a que 4 cœurs.