
Primitivas de sincronización
sync.Mutex, RWMutex, Once, Pool, Map, Cond, operaciones atómicas
1¿Qué es un sync.Mutex en Go?
¿Qué es un sync.Mutex en Go?
Respuesta
Un sync.Mutex (mutual exclusion lock) es una primitiva de sincronización que garantiza que solo una goroutine pueda acceder a una sección crítica a la vez. Llamar a Lock bloquea hasta que el mutex esté disponible, y Unlock lo libera para las demás goroutines. Úsalo para proteger el acceso concurrente a datos compartidos.
2¿Qué ocurre si olvidamos llamar a Unlock después de Lock en un sync.Mutex?
¿Qué ocurre si olvidamos llamar a Unlock después de Lock en un sync.Mutex?
Respuesta
Olvidar Unlock crea un deadlock potencial, ya que las demás goroutines esperarán indefinidamente para adquirir el mutex. La buena práctica es usar defer para garantizar que Unlock se llamará incluso en caso de panic. Asocia siempre Lock y Unlock en el mismo scope para evitar fugas de bloqueo.
3¿Cuál es la diferencia principal entre sync.Mutex y sync.RWMutex?
¿Cuál es la diferencia principal entre sync.Mutex y sync.RWMutex?
Respuesta
El sync.RWMutex permite múltiples lecturas concurrentes mediante RLock pero solo una escritura exclusiva mediante Lock. Esto mejora el rendimiento en escenarios con muchas lecturas, ya que los lectores no se bloquean entre sí. Usa RWMutex cuando las lecturas son frecuentes y las escrituras raras.
¿Por qué usar defer con Unlock en un sync.Mutex?
¿Cuándo preferir sync.RWMutex frente a sync.Mutex?
+19 preguntas de entrevista
Otros temas de entrevista Go
Fundamentos de Go
Estructuras de datos en Go
Interfaces en Go
Manejo de errores
Goroutines básicas
Channels
Go Modules
Servidor HTTP
Cliente HTTP
Codificación JSON
Database/SQL
Paquete context
Testing
Patrones de concurrencia
Frameworks web de Go
Diseño de API REST
gRPC
Reflection
Gestión de memoria
Optimización del rendimiento
Generics
Go Design Patterns
Microservices
Seguridad y autenticación
Docker & Containerization
Kubernetes Basics
Go Avanzado
Desarrollo de CLI
Domina Go para tu próxima entrevista
Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.
Empieza gratis