Junior — Middle
Explique los principios de funcionamiento de SpinLock y en qué escenarios se aplica.
sobes.tech AI
Respuesta de la IA
SpinLock es un primitive de sincronización que, al intentar adquirir un bloqueo ya ocupado, bloquea el hilo sin pasar a estado de espera (sleep), sino que realiza un ciclo activo ("gira" — spin), verificando la disponibilidad del bloqueo.
Principio de funcionamiento:
- El hilo intenta adquirir el bloqueo.
- Si el bloqueo está libre, lo adquiere y continúa con la ejecución.
- Si el bloqueo está ocupado, el hilo verifica su estado en un ciclo, sin pasar a modo de espera.
Cuándo usar:
- Cuando el tiempo de espera del bloqueo es muy corto, y pasar a sleep/wakeup sería más costoso.
- En sistemas con baja latencia y alta competencia.
Desventajas:
- Cuando la espera es larga, consume recursos de CPU inútilmente.
Ejemplo en pseudocódigo:
while !atomic_compare_and_swap(&lock, 0, 1) {
// espera activa
}
// sección crítica
lock = 0