Chapter 12
- A lack of (or mishandled) coordination between different lock objects can cause a deadlock, in which no progress can be made, and the program is locked in its current state.
- In the dining philosophers problem, since each philosopher is holding only one fork with their left hand, they cannot proceed to eat or put down the fork they are holding. The only way a philosopher gets to eat their food is for their neighbor philosopher to put their fork down, which is only possible if they can eat their food; this creates a never-ending circle of conditions that can never be satisfied. This situation is, in essence, the nature of a deadlock, in which all the elements of a system are stuck in place and no progress can be made.
- A deadlock is also defined by the necessary conditions that a concurrent program needs to have at the same time for a deadlock to occur. These conditions were first proposed by the computer scientist Edward G. Coffman Jr, and are therefore known...