Un deadlock (interblocage) est un état où deux threads ou plus sont chacun bloqués pour toujours, chacun attendant une ressource qu'un autre détient. Rien ne progresse.
Les quatre conditions nécessaires (Coffman)
Les quatre doivent être réunies simultanément — en supprimer une seule et le deadlock devient impossible :
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)
