This is, without doubt, the best and most comprehensive book I have read on the subject of multithreading. If you view yourself as a programmer rather than a component assembler then you need to know about this topic.
The contrast between this book and Win32 Multithreaded Programming is like that between chalk and cheese. This is a book written by skilled C++ programmers who have an extensive knowledge of all aspects of Multithreading. Because they are writing a platform independent book (they have, and use, experience across a range of platforms including Unix versions supporting POSIX, OS/2 and Win32) they can use sensible (readable) identifiers. They feel no need to provide extensive tutorial comments in the midst of their code (the book text is for that). I can forgive them the occasional imperfections (
main()returning
void, some use of all upper case for what are, or ought to be, enumerated values. They rather over use protected data (some would say that any use was too much). However what stands out is the general quality of their code. Exception classes that avoid using dynamic resources, use of the STL rather than hand-rolling your own collections (and note that these two authors already have a book in print on doing just that: Collection and Container Classes in C++ ).
This is, without doubt, the best and most comprehensive book I have read on the subject of multithreading. If you view yourself as a programmer rather than a component assembler then you need to know about this topic. All better than novice C++ programmers (except, possibly, the very best) will benefit from reading this book, not only directly from the central topic but incidentally by being exposed to generally superior source code.