Classic synchronization problems¶
Category: Synchronization · Status: stub · Lessons: chapter 04, Waiting for each other (planned)
One line: Small puzzles that each stand for a family of real bugs: the dining philosophers (deadlock and starvation), readers and writers, producer and consumer, the sleeping barber.
Also called: dining philosophers, readers-writers problem, sleeping barber problem.
How it connects¶
- See also: Deadlock, Producer-consumer, Read-write lock, Semaphore, Starvation
Where to read more¶
- In the books: The Little Book of Semaphores, Allen B. Downey — ch. 4, 'Classical synchronization problems'
- In the books: Effective Concurrency in Go, Burak Serdar — ch. 4, 'Some Well-Known Concurrency Problems'
- In the books: Grokking Concurrency, Kirill Bobrov — ch. 9, 'Solving concurrency problems: Deadlocks and starvation' → 'Dining philosophers'
- In the books: Operating System Concepts, Abraham Silberschatz, Peter Baer Galvin, Greg Gagne — ch. 7, 'Synchronization Examples' → 'Classic Problems of Synchronization'
- In the books: Advanced Python Programming, Quan Nguyen — ch. 13, 'Starvation' → 'Approaching the readers-writers problem'
- Reference: Wikipedia: Dining philosophers problem ↗
- Reference: Wikipedia: Readers–writers problem ↗
- Reference: Allen B. Downey: The Little Book of Semaphores ↗