Като цяло безизходицата означава, че два или повече обекта блокират някои източници и нито един от тях не може да завърши, защото блокират източниците по цикличен начин.
Един пример:Да кажем, че имам таблица A и таблица B, трябва да направя някаква актуализация в A и след това в B и решавам да ги заключа в момента на използване (това е наистина глупаво поведение, но сега служи на целта си ). В същия момент някой друг прави същото в обратен ред - първо заключва B, след това заключва A.
Хронологично това се случва:
proc1:Заключване A
proc2:Заключване B
proc1:Lock B - започва да чака, докато proc2 освободи B
proc2:Lock A - започва да чака, докато proc1 освободи A
Никой от тях никога няма да завърши. Това е задънена улица. На практика това обикновено води до грешки при изчакване, тъй като не е желателно нито една заявка да виси вечно и основната система (напр. базата данни) ще унищожи заявките, които не завършват навреме.
Един пример за безизходица от реалния свят е, когато заключите ключовете от къщата си в колата си и ключовете от колата в къщата си.