The book is quite good but it can sometimes be hard to read. Especially the algorithms could use some extra explination in a natural language. The book tends to skip to the formal proof right away which is harder to read if one does not completely understand the algorithm yet. The upside of this is that the book is quite to the point.
The book's examples are all in Java, which is usually no problem for someone who knows a comparable language like C#. There are however a few cases where examples refer to specific Java libraries which are not available for C# (or comparable languages) or which work differently. The book does have an appendix with a few pages about how to do multithreading in different langauges, but it does not go into differences important for the examples.
Very comprehensive, covers all areas of multiprocessing, building from abstract primitives into fully implementable software constructs. Also co-authored by a Djikstra and Turing award winner seen as the leader within this field.
A well written book on multiprocessor programming. The companion site is very helpful, make sure you check out the errata for this book, as there are quite a few code errors, http://booksite.elsevier.com/9780123705914
A book to *study*, not to skim through, and one which is best read with an internet connection and preferably a coding environment available to try out things as you go along (Java is the preferred choice for the examples in the book.)
A must-read for anyone who is serious about developing high performance software (servers, game engines, processing pipelines...)