Sobes.tech
Junior — Middle

Explique les principes de fonctionnement de SpinLock et dans quels scénarios il est utilisé.

sobes.tech IA

Réponse de l'IA

SpinLock est une primitive de synchronisation qui, lorsqu'on tente de prendre un verrou déjà occupé, bloque le thread sans passer en état d'attente (sleep), mais exécute une boucle active ("spin"), vérifiant la disponibilité du verrou.

Principe de fonctionnement :

  • Le thread tente de prendre le verrou.
  • Si le verrou est libre, il le prend et continue.
  • Si le verrou est occupé, le thread vérifie son état dans une boucle, sans passer en mode veille.

Quand l'utiliser :

  • Lorsque le temps d'attente du verrou est très court, et que passer en sleep/wakeup serait plus coûteux.
  • Dans les systèmes à faible latence et haute contention.

Inconvénients :

  • Lors d'une longue attente, il consomme inutilement des ressources CPU.

Exemple en pseudocode :

while !atomic_compare_and_swap(&lock, 0, 1) {
    // attente active
}
// section critique
lock = 0