Deadlock
A concurrency failure in which a cycle of resource dependencies leaves participants waiting indefinitely for one another.
Wait-For Cycle
Deadlock occurs when progress requires a resource held by another participant in a dependency cycle. The classic conditions involve mutual exclusion, hold-and-wait, no forced preemption and circular wait.
A timeout can limit how long the symptom lasts, but it does not remove the underlying dependency cycle.
Prevention and Diagnosis
Consistent lock ordering, smaller critical sections and avoiding nested resource ownership reduce risk. Thread dumps and lock diagnostics can expose the wait-for graph after the failure occurs.
Deadlock is different from Starvation and Livelock: all can prevent useful progress, but their scheduling behavior is different.