Ein Deadlock ist ein Zustand, in dem zwei oder mehr Threads jeweils für immer blockiert sind, jeder wartet auf eine Ressource, die ein anderer hält. Nichts kommt voran.
Die vier notwendigen (Coffman-)Bedingungen
Alle vier müssen gleichzeitig gelten — entferne eine einzige, und ein Deadlock ist unmöglich:
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)
