Deadlock (zakleszczenie) to stan, w którym dwa lub więcej wątków są każdy zablokowane na zawsze, każdy czekając na zasób, który trzyma inny. Nic nie posuwa się naprzód.
Cztery warunki konieczne (Coffmana)
Wszystkie cztery muszą zachodzić naraz — usuń którykolwiek, a deadlock jest niemożliwy:
1. Mutual exclusion → a resource is held exclusively (only one holder at a time)
2. Hold and wait → a thread holds one resource while waiting to acquire another
3. No preemption → resources can't be forcibly taken; only released voluntarily
4. Circular wait → a cycle: T1 waits for R2 (held by T2), T2 waits for R1 (held by T1)
