Junior — Middle
Explique o que é sync.Map e quais são as suas vantagens em comparação com mapas normais em Go.
sobes.tech IA
Resposta da IA
sync.Map — é uma implementação thread-safe de um dicionário (mapa) em Go, projetada para acesso concorrente sem a necessidade de usar mutexes explicitamente.
Vantagens do sync.Map em comparação com um map comum:
- Segurança para múltiplas threads: Permite leitura e escrita segura de várias goroutines ao mesmo tempo.
- Otimização para leituras frequentes: Usa mecanismos internos que tornam as operações de leitura muito rápidas.
- Sem necessidade de gerenciamento manual de bloqueios: Simplifica o código, eliminando a necessidade de usar
sync.Mutex.
No entanto, sync.Map pode ser menos eficiente em operações frequentes de escrita e remoção em comparação com um map comum com mutex.
Exemplo de uso:
type Cache struct {
data sync.Map
}
func (c *Cache) Get(key string) (interface{}, bool) {
return c.data.Load(key)
}
func (c *Cache) Set(key string, value interface{}) {
c.data.Store(key, value)
}