Deadlocks
A concurrent program is in deadlock if all processes are waiting for some event that will never occur
Typical deadlock pattern:
Process 1 is holding resource X, waiting for Y
Process 2 is holding resource Y, waiting for X
Process 1 will not get Y until Process 2 releases it
Process 2 will not release Y until it gets X,
which Process 1 is holding, waiting for …