Sobes.tech
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