Un interblocage (deadlock) se produit quand deux (ou plusieurs) transactions détiennent chacune un verrou dont l'autre a besoin, de sorte qu'aucune ne peut avancer — elles restent bloquées en attente l'une de l'autre indéfiniment. Les bases de données détectent les interblocages et les résolvent en avortant une transaction (la « victime »), qui doit être réessayée. Comprendre les causes et la prévention est important pour les applications concurrentes.
Comment un interblocage se produit
Transaction A: locks row 1, then wants row 2
Transaction B: locks row 2, then wants row 1
→ A waits for B (to release row 2), B waits for A (to release row 1) → DEADLOCK
Neither can proceed; they're waiting on each other in a cycle.
