Go

Goroutines basiques

Goroutines, go keyword, sync.WaitGroup, runtime.GOMAXPROCS, goroutine leaks

20 questions d'entretien·
Junior
1

Qu'est-ce qu'une goroutine en Go ?

Réponse

Une goroutine est une fonction qui s'exécute de manière concurrente avec d'autres fonctions, gérée par le runtime Go plutôt que par l'OS. Elle est extrêmement légère (quelques Ko de stack initiale) comparée à un thread OS (quelques Mo). Le scheduler Go peut multiplexer des milliers voire des millions de goroutines sur un nombre limité de threads OS, rendant la concurrence très accessible en Go.

2

Comment démarrer une nouvelle goroutine en Go ?

Réponse

Le mot-clé go suivi d'un appel de fonction démarre une nouvelle goroutine. Par exemple, 'go myFunction()' ou 'go func() { ... }()' pour une fonction anonyme. La goroutine s'exécute immédiatement en parallèle avec le code appelant. Attention : la fonction principale ne attend pas automatiquement la fin des goroutines lancées.

3

Quelle est la principale différence entre une goroutine et un thread OS ?

Réponse

Une goroutine consomme environ 2 Ko de stack initiale alors qu'un thread OS nécessite généralement 1-2 Mo. Le runtime Go gère le scheduling des goroutines en espace utilisateur (M:N scheduling), multiplexant des milliers de goroutines sur quelques threads OS. Cela permet de créer des millions de goroutines sans surcharger le système, contrairement aux threads OS qui sont limités par les ressources.

4

Que se passe-t-il si le programme principal se termine avant la fin d'une goroutine ?

5

Comment le runtime Go gère-t-il l'exécution des goroutines ?

+17 questions d'entretien

Maîtrise Go pour ton prochain entretien

Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.

Commencer gratuitement