Bir kilitlenme (deadlock), iki (veya daha fazla) işlemin birbirinin ihtiyaç duyduğu bir kilit tutması durumunda meydana gelir — hiçbiri ilerleyemez, birbirini bekleyerek sonsuza dek sıkışıp kalırlar. Veritabanları kilitlenmeleri tespit eder ve bir işlemi iptal ederek ("kurban" seçerek) çözerler; bu işlem yeniden denenmelidir. Nedenleri ve önleme yollarını anlamak, eş zamanlı uygulamalar için önemlidir.
Kilitlenme nasıl gerçekleşir
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.
