Junior — Middle
Comment synchroniser l'accès à une ressource partagée en utilisant une structure Map et un mécanisme Mutex?
sobes.tech IA
Réponse de l'IA
En Go, pour synchroniser l'accès à une structure partagée Map, on utilise généralement un mutex (sync.Mutex), car la map n'est pas sûre pour la concurrence.
Exemple:
import (
"sync"
)
var (
mu sync.Mutex
sharedMap = make(map[string]int)
)
func writeToMap(key string, value int) {
mu.Lock() // verrouille l'accès
sharedMap[key] = value
mu.Unlock() // déverrouille
}
func readFromMap(key string) (int, bool) {
mu.Lock()
val, ok := sharedMap[key]
mu.Unlock()
return val, ok
}
Ainsi, avant de lire ou d'écrire dans la map, on verrouille le mutex pour éviter les conditions de course et assurer un fonctionnement correct dans un environnement concurrent.