What is included with this book?
Joe Duffy is the development lead, architect, and founder of the Parallel Extensions to the .NET Framework team at Microsoft. In addition to hacking code and managing a team of developers, he works on long-term vision and incubation efforts, such as language and type system support for concurrency safety. He previously worked on the Common Language Runtime team. Joe blogs regularly at www.bluebytesoftware.com/blog.
Foreword | p. xix |
Preface | p. xxiii |
Acknowledgments | p. xxvii |
About the Author | p. xxix |
Concepts | p. 1 |
Introduction | p. 3 |
Why Concurrency? | p. 3 |
Program Architecture and Concurrency | p. 6 |
Layers of Parallelism | p. 8 |
Why Not Concurrency? | p. 10 |
Where Are We? | p. 11 |
Synchronization and Time | p. 13 |
Managing Program State | p. 14 |
Synchronization: Kinds and Techniques | p. 38 |
Where Are We? | p. 73 |
Mechanisms | p. 77 |
Threads | p. 79 |
Threading from 10,001 Feet | p. 80 |
The Life and Death of Threads | p. 89 |
Where Are We? | p. 124 |
Advanced Threads | p. 127 |
Thread State | p. 127 |
Inside Thread Creation and Termination | p. 152 |
Thread Scheduling | p. 154 |
Where Are We? | p. 180 |
Windows Kernel Synchronization | p. 183 |
The Basics: Signaling and Waiting | p. 184 |
Using the Kernel Objects | p. 211 |
Where Are We? | p. 251 |
Data and Control Synchronization | p. 253 |
Mutual Exclusion | p. 255 |
Reader/Writer Locks (RWLs) | p. 287 |
Condition Variables | p. 304 |
Where Are We? | p. 312 |
Thread Pools | p. 315 |
Thread Pools 101 | p. 316 |
Windows Thread Pools | p. 323 |
CLR Thread Pool | p. 364 |
Performance When Using the Thread Pools | p. 391 |
Where Are We? | p. 398 |
Asynchronous Programming Models | p. 399 |
Asynchronous Programming Model (APM) | p. 400 |
Event-Based Asynchronous Pattern | p. 421 |
Where Are We? | p. 427 |
Fibers | p. 429 |
An Overview of Fibers | p. 430 |
Using Fibers | p. 435 |
Additional Fiber-Related Topics | p. 445 |
Building a User-Mode Scheduler | p. 453 |
Where Are We? | p. 473 |
p. 475 | |
Memory Models and Lock Freedom | p. 477 |
Memory Load and Store Reordering | p. 478 |
Hardware Atomicity | p. 486 |
Memory Consistency Models | p. 506 |
Examples of Low-Lock Code | p. 520 |
Where Are We? | p. 541 |
Concurrency Hazards | p. 545 |
Correctness Hazards | p. 546 |
Liveness Hazards | p. 572 |
Where Are We? | p. 609 |
Parallel Containers | p. 613 |
Fine-Grained Locking | p. 616 |
Lock Free | p. 632 |
Table of Contents provided by Publisher. All Rights Reserved. |
The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.