sync.Map es la estructura de la biblioteca estándar de Go diseñada para acceder a un mapa desde varias goroutines sin provocar carreras de datos, un problema habitual cuando un mapa normal es leído y escrito de forma concurrente. Tras explicar por qué un map[K]T corriente no es seguro ante accesos simultáneos y por qué protegerlo con sync.RWMutex puede generar contención, el artículo describe el API público de sync.Map: Load, Store, Delete, LoadOrStore, LoadAndDelete, Swap, CompareAndSwap, CompareAndDelete, Range y Clear. También señala particularidades relevantes: las claves y los valores se almacenan como any y exigen aserción de tipo al recuperarlos, las claves no comparables como los slices provocan pánicos, no existe un método Len y la única forma de contar entradas es recorrer el mapa con Range, cuya iteración no ofrece una vista coherente frente a escrituras concurrentes. La parte central del texto recorre la nueva implementación basada en un hash trie experimental introducida en Go 1.24 y consolidada como implementación oficial en Go 1.26, que sustituye al diseño anterior. Se desgrana cómo se localiza una clave: se aplica una función hash de 64 bits, se usan los primeros bits para acotar el espacio de búsqueda dentro del trie y, por último, una comparación de igualdad confirma la coincidencia exacta. Se compara la estrategia de sync.Map, que fragmenta el bloqueo para reducir la contención entre goroutines, con la del map[K]T protegido por un único mutex. El artículo incluye además fragmentos de código completos para crear mapas protegidos con RWMutex, versiones genéricas reutilizables y ejemplos de uso de los métodos de sync.Map, y termina con recomendaciones prácticas: recurrir a sync.Map solo en los escenarios para los que la documentación oficial lo recomienda, pues en la mayoría de los casos un mapa convencional con mutex sigue siendo la opción más clara y eficiente.
