Deadlock
- Process A waits for Process B -> B waits for A. So they are locked forever
When each process holds something that the other process needs, making both process stuck
Race condition
- Best example: Optimistic Exception
When each process holds something that the other process needs, making both process stuck