Noticias que mencionan sync.RWMutex

sync.Map en Go: del API pública a la implementación con hash trie

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 s

Cómo Go detecta copias de estructuras con sync.noCopy

En el paquete sync del lenguaje Go, tipos como sync.Mutex, sync.Once y sync.Map incluyen un campo especial de tipo noCopy que marca valores que no deben copiarse tras su primer uso. Pero ese marcador, un struct vacío con dos métodos también vacíos llamados Lock y Unlock, no impide la copia por sí so

Benchmark en Go: un mapa fragmentado con 256 cerrojos supera al resto

Este artículo presenta una comparativa exhaustiva de seis diseños de caché en memoria (pares clave-valor de cadenas) implementados exclusivamente con la biblioteca estándar de Go y evaluados con pruebas de rendimiento. Los diseños comparados son: un mapa plano sin protección (no seguro), un mapa con

Archivos planos: alternativa a bases de datos para apps pequeñas

Un reciente análisis comparativo realizado por DB Pro ha revelado que, para aplicaciones pequeñas y en etapas iniciales, el uso de archivos planos (JSONL) puede ser una alternativa viable a las bases de datos tradicionales como SQLite o PostgreSQL. El estudio, que comparó el rendimiento de servidore

Go: Nuevo sistema de logs con buffer circular

El artículo de Alex Rios, "Construyendo slogbox", explora la implementación de un manejador de logs (`slog.Handler`) en Go que utiliza un buffer circular (ring buffer) para almacenar los últimos registros de logs. La motivación surge de la necesidad de tener acceso a logs recientes para fines de mon

Go 1.24: sync.Map optimizado con nueva estructura

A partir de Go 1.24, la implementación interna de `sync.Map` en la biblioteca estándar de Go ha sido rediseñada para mejorar el rendimiento de la concurrencia, utilizando ahora una estructura llamada HashTrieMap. Esta estructura combina una tabla hash con un trie, permitiendo lecturas sin bloqueo (l