Junior — Middle
¿Qué tareas resuelve el paquete sync en el lenguaje de programación Go?
sobes.tech AI
Respuesta de la IA
El paquete sync en el lenguaje Go proporciona primitivas de sincronización para gestionar el acceso concurrente a recursos y coordinar goroutines.
Las principales tareas que resuelve el paquete sync:
- Mutex (
Mutex) — para proteger secciones críticas y evitar accesos simultáneos a datos compartidos. - RWMutex — mutex con separación entre lectura y escritura, que permite a varias goroutines leer datos simultáneamente, pero bloquea la escritura.
- WaitGroup — para esperar a que finalice un grupo de goroutines.
- Once — para realizar una inicialización solo una vez.
Ejemplo de uso de Mutex:
var mu sync.Mutex
var counter int
func increment() {
mu.Lock()
defer mu.Unlock()
counter++
}
De esta forma, el paquete sync ayuda a trabajar de manera segura con la concurrencia y a evitar condiciones de carrera.