The Little Book of Semaphores by Allen Downey.
From the webpage:
The Little Book of Semaphores is a free (in both senses of the word) textbook that introduces the principles of synchronization for concurrent programming.
In most computer science curricula, synchronization is a module in an Operating Systems class. OS textbooks present a standard set of problems with a standard set of solutions, but most students don’t get a good understanding of the material or the ability to solve similar problems.
The approach of this book is to identify patterns that are useful for a variety of synchronization problems and then show how they can be assembled into solutions. After each problem, the book offers a hint before showing a solution, giving students a better chance of discovering solutions on their own.
The book covers the classical problems, including “Readers-writers,” “Producer-consumer”, and “Dining Philosophers.” In addition, it collects a number of not-so-classical problems, some written by the author and some by other teachers and textbook writers. Readers are invited to create and submit new problems.
…
If you want a deep understanding of concurrency, this looks like a very good place to start!
Some of the more colorful problem names:
- The dining savages problem
- The Santa Claus problem
- The unisex bathroom problem
- The Senate Bus problem
There are problems (and patterns) for your discovery and enjoyment!
I first saw this in a tweet by Computer Science.