
Channels
Channels, buffered vs unbuffered, close, select, range over channels, nil channels
1Qu'est-ce qu'un channel en Go ?
Qu'est-ce qu'un channel en Go ?
Réponse
Un channel est un type de donnée qui permet la communication et la synchronisation entre goroutines. Il agit comme un conduit typé permettant d'envoyer et de recevoir des valeurs de manière thread-safe. Utiliser les channels pour partager des données entre goroutines au lieu de partager la mémoire directement.
2Comment créer un unbuffered channel d'entiers en Go ?
Comment créer un unbuffered channel d'entiers en Go ?
Réponse
Un unbuffered channel se crée avec make(chan T) sans spécifier de capacité. Il bloque l'expéditeur jusqu'à ce qu'un récepteur soit prêt, garantissant une synchronisation stricte. Utiliser unbuffered channels pour des communications one-to-one nécessitant une synchronisation explicite.
3Quelle est la différence principale entre un buffered et un unbuffered channel ?
Quelle est la différence principale entre un buffered et un unbuffered channel ?
Réponse
Un unbuffered channel bloque l'expéditeur jusqu'à ce qu'un récepteur soit prêt (synchronisation stricte), tandis qu'un buffered channel peut stocker des valeurs jusqu'à sa capacité avant de bloquer. Les buffered channels découplent les goroutines et améliorent les performances dans certains cas, mais peuvent masquer des problèmes de concurrence. Utiliser unbuffered pour la synchronisation, buffered pour le débit.
Comment créer un buffered channel avec une capacité de 10 éléments ?
Comment envoyer une valeur dans un channel ?
+19 questions d'entretien
Autres sujets d'entretien Go
Les bases de Go
Structures de données Go
Interfaces Go
Gestion des erreurs
Goroutines basiques
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