Resumen de Puntos Clave de Concurrencia
Cada punto clave de las 9 páginas de esta sección, reunido en una sola página y agrupado por la página de la que proviene.
Busca en todas las páginas de la documentación
Cada punto clave de las 9 páginas de esta sección, reunido en una sola página y agrupado por la página de la que proviene.
go; siempre sincroniza con WaitGroup o canales, no con time.Sleepok para detectar el cierre del canalselect se bloquea hasta que un caso procede, eligiendo de forma pseudoaleatoria si varios están listosdefault se ejecuta inmediatamente cuando ningún caso de canal está listo; nunca lo uses para espera activatime.After en bucles ajustados; usa time.NewTimer o context para un mejor comportamiento de la GCselect; las expresiones se evalúan de forma anticipada antes de esperarbreak solo sale de select, no del bucle for circundante; usa etiquetas o return para escaparnil para deshabilitar una rama del caso select hasta que la necesites de nuevoMutex, o permite muchos lectores con RWMutexdefer unlock inmediatamente después de lock para prevenir deadlocksMutex o WaitGroup después del primer uso; pásalos por punteroAdd antes de iniciar goroutines; Done una vez por Add; luego Waitsync.Once garantiza que una función se ejecute exactamente una vezsync.Cond coordina goroutines que esperan una condiciónsync.Pool reutiliza objetos temporales entre ciclos de GCsync.Map se adapta a cachés con muchas lecturas y claves establessync.Map por defecto para todos los mapas-race en go test, go run o go build para encontrar carreras-race sea obligatorio en CI para evitar que las carreras lleguen a producciónmain retornego test -race en CI para paquetes concurrentesRevisado por Chris St. John·Última actualización: 19 jul 2026