Een deadlock treedt op wanneer twee (of meer) transacties elk een lock hebben die de ander nodig heeft, zodat geen van beide kan doorgaan — ze zitten vast en wachten voor altijd op elkaar. Databases detecteren deadlocks en lossen ze op door één transactie af te breken (het "slachtoffer"), die opnieuw moet proberen. Het begrijpen van de oorzaken en preventie is belangrijk voor gelijktijdige applicaties.
Hoe een deadlock ontstaat
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.
