Solución Confirmada / condiciones-carrera-contadores-5hjgd

Condiciones de carrera en contadores compartidos

Go Routines Concurrency

Diagnóstico del error

Si varias goroutines incrementan un contador compartido sin sincronización, se pueden producir resultados inconsistentes debido a condiciones de carrera.

Fix Sugerido
Utiliza un mutex o el paquete sync/atomic para garantizar un acceso seguro. Ejemplo usando atomic:

```go
var counter int32

func increment() {
    atomic.AddInt32(&counter, 1)
}

var wg sync.WaitGroup
for i := 0; i < 1000; i++ {
    wg.Add(1)
    go func() {
        defer wg.Done()
        increment()
    }()
}
wg.Wait()
fmt.Println(counter)
```

Recursos Premium para Go Routines Concurrency

Otras consultas relacionadas