A lot of times I was interested
how parallel code works and how organized classic parallel data structures. So I
decided to read The Art of Multiprocessor Programming by Maurice Herlihy and I read
almost what I wanted to read. The books widely explains locks and other concurrent primitives,
parallel data structures and some best practices. Although the book is a bit
classbook-like, most parts aren’t boring to read. And as a good thing all chapters
contains exercises.
As a drawback, this book contains information mostly only about mutable data structures.