File Size: 4380 KB
Print Length: 480 pages
Publisher: Wiley-Interscience; 1 edition (August 3, 2007)
Publication Date: August 3, 2007
Sold by: Digital Services LLC
X-Ray: Not Enabled
Word Wise: Not Enabled
Lending: Not Enabled
Enhanced Typesetting: Not Enabled
Best Sellers Rank: #1,573,632 Paid in Kindle Store (See Top 100 Paid in Kindle Store) #25 in Books > Computers & Technology > Programming > APIs & Operating Environments > Win32 API #122 in Books > Computers & Technology > Programming > Languages & Tools > Debugging #2955 in Books > Computers & Technology > Programming > Software Design, Testing & Engineering > Object-Oriented Design
This book is simply excellent. I have already completed my bachelors degree in Computer Science, which means I only had a basic understanding of threading from my Distributed Computing class. So, I knew a whole bunch of thread jargon and slightly understood how threads are created and what the critical section problem is, as well as a basic understanding of how semaphores can solve the problem. Beyond that, the book has taught me what goes on behind the scenes of thread creation and why critical sections can be so complicated. The average Computer Science student is not interested in how it works behind the scenes, only how to make it work for their current needs. This book, while useful to a more adept coder, will not quickly and easily fulfill that requirement. It is definitely geared toward those that are really serious about multithreading and intend to test/use their threading knowledge over and over again. If that is you and you don't really understand threading too well, this book can take you from novice to expert in only a few months.I'd definitely recommend it to my co-workers!
As a Java engineer, I cannot really recommend this book. While the authors are definitely knowledgeable about their subject, they do not do a good job in communicating their knowledge to a reader. The book reads like a doctoral thesis, poorly organized, not well laid out. Brian Goetz book on Concurrency is a much better book.
I got this book hoping for helpful ideas on how to debug multithreaded programs. This book has them, but the writing isn't that clear or readable. It reads like a grad. level paper more than a standard technical book that most of us are used to.The book lightly covers standard multithreading concepts and objects, but you're better off learning those someplace else because I'm sure it's explained in more "laymen" terms elsewhere. The one thing this book does do well is offer a way for you to write mutexes, semaphores, monitors, etc. in a way that would allow you to replay a given run of a multithreaded program (assuming you also can reproduce the input to said program somehow). If you know how to debug a single threaded application, this ability makes it easier to debug a multithreaded program. (As things become determisitic.)However, if you already have a program that you're trying to debug, you end up out of luck, unless you want to port your program to use these new libraries.Also note that all the examples in this book are for C++ or Java. C doesn't have the object-oriented abilities that would be needed to easily use the examples.
Even though title suggests it is 'modern multithreading', this book reiterates typical multithreading issues. However subjects addressed are not presented well enough and code snippets are not explained properly.