“When you begin using multi-threading throughout an application, the importance of clean architecture and design is critical. . . . This places an emphasis on understanding not only the platform’s capabilities but also emerging best practices. Joe does a great job interspersing best practices alongside theory throughout his book.”
– From the Foreword by Craig Mundie, Chief Research and Strategy Officer, Microsoft Corporation
Author Joe Duffy has risen to the challenge of explaining how to write software that takes full advantage of concurrency and hardware parallelism. In Concurrent Programming on Windows, he explains how to design, implement, and maintain large-scale concurrent programs, primarily using C# and C++ for Windows.
Duffy aims to give application, system, and library developers the tools and techniques needed to write efficient, safe code for multicore processors. This is important not only for the kinds of problems where concurrency is inherent and easily exploitable—such as server applications, compute-intensive image manipulation, financial analysis, simulations, and AI algorithms—but also for problems that can be speeded up using parallelism but require more effort—such as math libraries, sort routines, report generation, XML manipulation, and stream processing algorithms.
Concurrent Programming on Windows has four major The first introduces concurrency at a high level, followed by a section that focuses on the fundamental platform features, inner workings, and API details. Next, there is a section that describes common patterns, best practices, algorithms, and data structures that emerge while writing concurrent software. The final section covers many of the common system-wide architectural and process concerns of concurrent programming.
This is the only book you’ll need in order to learn the best practices and common patterns for programming with concurrency on Windows and .NET.
Very Windows centric, but good book on concurrent programing. I read the book because I’m developing cross platform concurrent code and wanted to know more about how Window’s coherency model compared with Linux and OS X.
If I was a Windows developer using C# or Visual C++ this book would be great. Good explanations, interesting examples, good background as to why you should do things one way or another. Good advice.
Problem is I’m not a Windows developer – and this books assumes you’ve got a good background in .NET, etc. – you already understand the basics.
As somebody planning to use GCC or Python for development on Windows – the book was good, not great. Assuming you’re comfortable with not understanding all the Windows specific lingo and skimming some sections, the book is OK. Some great background on Windows and very good information on coherency.
So – a 5 if you’re a Windows developer, a 3 if you’re looking for a general book explaining coherency on Windows Platforms.
I enjoyed it – but it’s not the book I was looking for.