Junior — Middle
Quand est-il recommandé d'utiliser le mécanisme RWMutex en programmation pour gérer l'accès partagé aux ressources?
sobes.tech IA
Réponse de l'IA
Le mécanisme RWMutex en Go est recommandé lorsque vous avez une ressource à laquelle plusieurs lecteurs peuvent accéder simultanément, mais que l’écriture doit être exclusive. RWMutex permet à plusieurs goroutines de lire les données en même temps sans se bloquer mutuellement, mais bloque l’accès pour tous lors d’une écriture.
Cela améliore les performances dans les scénarios avec des opérations de lecture fréquentes et des opérations d’écriture rares.
Exemple d’utilisation :
var mu sync.RWMutex
var data int
func readData() int {
mu.RLock() // verrouillage pour la lecture
defer mu.RUnlock()
return data
}
func writeData(val int) {
mu.Lock() // verrouillage exclusif pour l’écriture
defer mu.Unlock()
data = val
}
Utilisez RWMutex lorsque :
- La lecture est fréquente et parallèle.
- L’écriture est rare et nécessite un accès exclusif.
Si les opérations de lecture et d’écriture sont à peu près de même fréquence, ou si la simplicité est importante, il vaut mieux utiliser un Mutex classique.