Concurrent Programming on Windows
My aim with this book is to write the book people will buy to understand how to write concurrent programs on the Windows and .NET platforms. This is clearly of increasing importance due to multi-core. This includes a tutorial of the entire set of Windows and .NET APIs required to write concurrent programs. Interspersed among the tutorial are many difficult-to-discover internal ...
My aim with this book is to write the book people will buy to understand how to write concurrent programs on the Windows and .NET platforms. This is clearly of increasing importance due to multi-core. This includes a tutorial of the entire set of Windows and .NET APIs required to write concurrent programs. Interspersed among the tutorial are many difficult-to-discover internal details about how things work. Because so much of the threading and synchronization features of the platform are Windows-general, I try to focus on the general behavior first and the API details of native and managed code second.
That are also several practical parallelism algorithms and data structures used for illustration, and best practices and practical topics like debugging and performance. My goal is to treat readers to enough computer-sciency material so that they understand the rich history and evolution of concurrency, but to avoid too much formalism so that professional developers aren’t overwhelmed with theory that isn't directly relevant to ordinary programming.
I’ve structured the book into four major sections. The first, Concepts, introduces the reader to concurrency at a broad level without going too deep into any one topic. The next section, Mechanisms, focuses squarely on the fundamental platform features, inner workings, and API details. After that, the Algorithms section describes common patterns, best practices, algorithms, and data structures that emerge while writing concurrent software. The fourth and last section, Systems, covers many of the system-wide architectural and process concerns that frequently arise. There is a progression here. Concepts is first because it develops a basic understanding of concurrency in general. Understanding Algorithms would be difficult without a solid understanding of the Mechanisms, and similarly, building real Systems would be impossible without understanding the rest. The reverse is not true at all.
http://www.bluebytesoftware.com/blog/PermaLink,guid,b22cda2c-606f-4259-a48d-fa04e692db92.aspx
http://www.bluebytesoftware.com/books/winconc/winconc_book_resources.html