Sobes.tech
Junior — Middle

Toutes les goroutines doivent-elles être lancées simultanément et en parallèle par défaut?

sobes.tech IA

Réponse de l'IA

Non, tous les goroutines ne sont pas obligés de s'exécuter simultanément et en parallèle par défaut. Les goroutines sont des threads légers planifiés par le planificateur de Go.

Lorsque vous lancez plusieurs goroutines, elles peuvent s'exécuter séquentiellement ou en parallèle, en fonction du nombre de threads système disponibles (GOMAXPROCS) et de la charge actuelle.

Par défaut, si GOMAXPROCS est égal à 1, les goroutines s'exécuteront de manière concurrente, mais pas en parallèle — c'est-à-dire que le commutateur entre elles se produit au niveau du planificateur, mais qu'une seule s'exécute à la fois.

Pour obtenir un parallélisme réel, il faut augmenter GOMAXPROCS (habituellement égal au nombre de cœurs du processeur). Ainsi, plusieurs goroutines pourront s'exécuter simultanément sur différents cœurs.