Kilitlenmedeki her katılımcı, diğerinin ihtiyaç duyduğu bir kaynağı elinde tutuyor. Örneğin T1 ve T2 olmak üzere iki işlem düşünün. T1, A kaynağını kilitledi ve T2, B kaynağını kilitledi. T1'in tamamlanması için B kaynağına ihtiyacı var, ancak T2 kilidi serbest bırakana kadar bunu alamaz. Benzer şekilde, T2'nin tamamlanması için A kaynağına ihtiyacı vardır, ancak T1 kilidi serbest bırakana kadar bunu elde edemez. Bu bir çıkmaza neden olur.
Hayali kilitlenmeyi normal kilitlenmeden farklı kılan, katılımcıların birbirlerinden haberdar olmamasıdır. Her biri kendi işini yapmaya çalışıyor ama farkında olmadan birbirlerini engelliyorlar.
Hayalet kilitlenmelerin tespit edilmesi zordur çünkü bunlar tek bir hata noktasından kaynaklanmaz. Bunlar sistemin kendisinin dağıtılmış yapısından kaynaklanmaktadır. Sonuç olarak bunların çözülmesi çok zor olabilir.
Hayali kilitlenmeleri çözmenin bir yolu sistemdeki kilit sayısını artırmaktır. Bu, iki işlemin aynı anda aynı kaynakları kilitlemesi gerekme olasılığını azaltır. Hayali kilitlenmeleri çözmenin başka bir yolu da zaman aşımlarını kullanmaktır. Bir işlem belirli bir süre sonunda kilidi açmazsa iptal edilir ve kilit açılır.
Hayali kilitlenmeler nadir görülen bir olaydır ancak meydana geldiklerinde ciddi bir soruna dönüşebilirler. Bunların ne olduğunu ve nasıl çözüleceğini anlayarak dağıtılmış sistemlerinizin sorunsuz çalışmasına yardımcı olabilirsiniz.