Sobes.tech
Senior

Si GOMAXPROCS=2 et que deux boucles infinies avec des opérations mathématiques sont en cours d'exécution, d'autres goroutines seront-elles exécutées?

sobes.tech IA

Réponse de l'IA

Si GOMAXPROCS=2, cela signifie que le planificateur Go peut utiliser simultanément 2 threads du système d'exploitation pour exécuter des goroutines.

Si deux boucles infinies avec des opérations mathématiques intensives sont en cours d'exécution, elles occuperont complètement les deux threads, car elles ne font pas d'appels bloquants ou d'opérations d'entrée/sortie.

En conséquence, d'autres goroutines ne pourront pas obtenir de temps CPU, et leur exécution sera fortement retardée ou presque arrêtée.

Pour résoudre cette situation, il faut soit réduire la charge dans ces boucles, ajouter des points où les goroutines appellent runtime.Gosched() ou effectuent des opérations bloquantes, soit augmenter GOMAXPROCS pour donner plus de threads au planificateur.