Ένα deadlock (αδιέξοδο) είναι μια κατάσταση όπου δύο ή περισσότερα νήματα είναι το καθένα μπλοκαρισμένο για πάντα, με το καθένα να περιμένει έναν πόρο που κρατά ένα άλλο. Τίποτα δεν προχωρά.
Οι τέσσερις αναγκαίες συνθήκες (Coffman)
Και οι τέσσερις πρέπει να ισχύουν ταυτόχρονα — αφαιρέστε οποιαδήποτε μία και το deadlock είναι αδύνατο:
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)
