Concurrent Programming on Windows
Architecture, Principles, and Patterns
- 1008 pages
- 36 hours of reading
When implementing multi-threading in an application, clean architecture and design become crucial. This requires an understanding of the platform's capabilities and emerging best practices. The author effectively combines theory with practical insights throughout the text. Joe Duffy tackles the challenge of explaining how to write software that fully utilizes concurrency and hardware parallelism. He focuses on designing, implementing, and maintaining large-scale concurrent programs, primarily using C# and C++ for Windows. Duffy provides developers with the necessary tools and techniques to create efficient, safe code for multicore processors. This knowledge is essential for problems where concurrency is naturally advantageous, such as server applications, image manipulation, financial analysis, simulations, and AI algorithms. It is also valuable for tasks that can benefit from parallelism, like math libraries, sorting, report generation, XML manipulation, and stream processing. The book is structured into four main sections: an introduction to concurrency, a focus on fundamental platform features and API details, a discussion of common patterns and best practices, and a final section addressing system-wide architectural concerns. This comprehensive resource equips readers with the best practices and patterns for programming with concurrency on Windows and .NET.


