Junior — Middle
Que situações podem ocorrer ao gravar simultaneamente em um armazenamento do tipo mapa?
sobes.tech IA
Resposta da IA
Em Go, o mapa padrão (map) não é seguro para acesso concorrente ao ler e escrever simultaneamente de várias goroutines. Se várias goroutines escreverem dados no map ao mesmo tempo sem sincronização, isso pode levar a um pânico em tempo de execução com a mensagem "concurrent map writes" ou a um comportamento imprevisível do programa.
Para evitar esses problemas, deve-se usar mecanismos de sincronização, como mutex (sync.Mutex) ou estruturas especializadas, como sync.Map, que são seguras para acesso concorrente.
Exemplo com mutex:
var mu sync.Mutex
var m = make(map[string]int)
func writeToMap(key string, value int) {
mu.Lock()
defer mu.Unlock()
m[key] = value
}
Sem essa proteção, a escrita simultânea pode corromper os dados ou causar a terminação inesperada do programa.