well presented with plenty of explanations and code examples.
The subtext of the title is Multithreaded and Networked programming with this book tightly focused on threading and concurrency. At around four hundred pages the authors have the opportunity to cover a great deal of material - and they do.
The reader is taken through a number of topics such as threads, race conditions, mutual exclusion, monitors, parallelizing computation, chore (task) programming techniques, networking and co-ordination. There is a chapter devoted to each topic, which is well laid out with clear explanations and example code that is explained in the text. The authors employ a style of presentation that periodically presents a relevant question and follows it with an answer. This is well done and the questions allowed the material to flow onto the more complex subjects.
Many of the examples are based on the authors' tools, the code for the Tools of Computing thread package, which is (freely) available via their company web-site www.toolsofcomputing.com. However, this should not mislead you, the book explains the concepts well, not just their tools and progresses from beginner to more advanced material.
For those who wish to learn about multithreaded programming and concurrency this is a good book, it is well presented with plenty of explanations and code examples. For those who already have a limited understanding of this subject then there is probably still some value in this book due to some of the more advanced discussion. For example around topics such as shared tables of queues, an associative data structure that facilitates co-ordination and communication among a group of threads and chores.