In this chapter:
Class Libraries and Thread Safety 793
Primitive User-Mode and Kernel-Mode Constructs 794
User-Mode Constructs 796
Kernel-Mode Constructs 813
When a thread pool thread blocks, the thread pool creates additional threads, and the time and memory resources required to create, destroy, and schedule threads is very expensive. And when many developers see that they have threads in their program that are not doing anything useful, they tend to create more threads in hopes that the new threads will do something useful. The key to building scalable and responsive applications is to not block the threads you have so that they can be used and reused to execute other tasks. Chapter 26 ...