
Goroutines basiques
Goroutines, go keyword, sync.WaitGroup, runtime.GOMAXPROCS, goroutine leaks
1Qu'est-ce qu'une goroutine en Go ?
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.
2Comment démarrer une nouvelle goroutine en Go ?
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.
3Quelle est la principale différence entre une goroutine et un thread OS ?
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.
Que se passe-t-il si le programme principal se termine avant la fin d'une goroutine ?
Comment le runtime Go gère-t-il l'exécution des goroutines ?
+17 questions d'entretien
Autres sujets d'entretien Go
Les bases de Go
Structures de données Go
Interfaces Go
Gestion des erreurs
Channels
Go Modules
Serveur HTTP
Client HTTP
Encodage JSON
database/sql
Package context
Testing
Patterns de concurrence
Primitives de synchronisation
Frameworks web Go
Design d'API REST
gRPC
Reflection
Gestion mémoire
Optimisation des performances
Generics
Design Patterns Go
Microservices
Sécurité & Authentication
Docker & Containerization
Kubernetes Basics
Go Avancé
Développement CLI
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