Definition
A concurrency failure in which two or more tasks wait indefinitely for resources held by each other (or for conditions that can only be satisfied by the others), preventing any of them from making forward progress.

Principle

Principle
Deadlock arises when the system simultaneously satisfies the classic resource-allocation conditions: mutual exclusion, hold-and-wait, no preemption, and circular wait; these conditions form the organizing constraint that permits a permanent cyclic dependency.

Demonstration

Demonstration
Two threads A and B: A holds lock L1 and requests L2; B holds L2 and requests L1. Neither can proceed because each is waiting for the other's resource, producing an indefinite stall.

Misapplication

Misapplication
Calling any long pause or slow response a deadlock (for example, confusing heavy I/O latency, scheduling delays, or livelock with true resource-cycle deadlock).

Consequence

Consequence
Recognizing deadlock correctly leads to targeted remedies: prevent one of the Coffman conditions (for example, impose a global resource ordering), detect cycles and recover (preemption or rollback), or design avoidance algorithms; misdiagnosis leads to ineffective fixes.

Reversal

Reversal
The inverse is a system guaranteed to make progress (liveness): no circular waits, resources are preemptible or allocated in an order that prevents cycles.

Boundary

Boundary
Applies to concurrent resource-allocation problems (threads, processes, distributed locks, DB transactions). Excludes single-thread logic errors, pure performance degradation without cyclic dependency, and transient waits that eventually resolve. Distributed deadlocks and lock convoys are in-scope; memory faults alone are not.

Semantic Tension

Semantic Tension
Tension exists with livelock and starvation: deadlock is a stable stuck state (no state changes), whereas livelock is active but non-progressing, and starvation denotes unfair denial without a mutual cycle.

Synthesis

Synthesis
Deadlock is the stable manifestation of a cyclic resource dependency under the four Coffman conditions; treating it as such directs prevention (break a condition), detection (find cycles), or recovery (preempt or roll back).