Middle
¿Cómo funcionan las operaciones atómicas?
sobes.tech AI
Respuesta de la IA
Las operaciones atómicas son operaciones que se ejecutan en su totalidad o no se ejecutan en absoluto, sin estados intermedios visibles para otros hilos.
En Go, el paquete sync/atomic proporciona funciones para realizar estas operaciones en variables (por ejemplo, AddInt32, CompareAndSwapInt64). Esto permite modificar valores de manera segura en entornos concurrentes sin usar mutexes.
Ejemplo:
import (
"fmt"
"sync/atomic"
)
func main() {
var counter int32 = 0
atomic.AddInt32(&counter, 1) // incremento atómico en 1
fmt.Println(counter) // 1
}
La atomicidad garantiza que la operación no será interrumpida y que otros goroutines verán ya sea el valor antiguo o el nuevo, pero no uno intermedio.