Go

Primitives de synchronisation

sync.Mutex, RWMutex, Once, Pool, Map, Cond, atomic operations

22 questions d'entretien·
Confirmé
1

Qu'est-ce qu'un sync.Mutex en Go ?

Réponse

Un sync.Mutex (mutual exclusion lock) est une primitive de synchronisation qui garantit qu'un seul goroutine peut accéder à une section critique à la fois. Appeler Lock bloque jusqu'à ce que le mutex soit disponible, et Unlock le libère pour les autres goroutines. Utiliser pour protéger les accès concurrents aux données partagées.

2

Que se passe-t-il si on oublie d'appeler Unlock après Lock sur un sync.Mutex ?

Réponse

Oublier Unlock crée un deadlock potentiel car les autres goroutines attendront indéfiniment pour acquérir le mutex. La bonne pratique consiste à utiliser defer pour garantir que Unlock sera appelé même en cas de panic. Toujours associer Lock et Unlock dans le même scope pour éviter les fuites de verrouillage.

3

Quelle est la différence principale entre sync.Mutex et sync.RWMutex ?

Réponse

Le sync.RWMutex permet plusieurs lectures concurrentes via RLock mais une seule écriture exclusive via Lock. Cela améliore les performances pour les cas en lecture intensive car les lecteurs ne se bloquent pas mutuellement. Utiliser RWMutex quand les lectures sont fréquentes et les écritures rares.

4

Pourquoi utiliser defer avec Unlock sur un sync.Mutex ?

5

Quand préférer sync.RWMutex à sync.Mutex ?

+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