Go

Channels

Channels, buffered vs unbuffered, close, select, range over channels, nil channels

22 questions d'entretien·
Junior
1

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.

2

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.

3

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.

4

Comment créer un buffered channel avec une capacité de 10 éléments ?

5

Comment envoyer une valeur dans un channel ?

+19 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