A thread pool pattern can be simply described as a collection of threads. Some of them may be doing useful work, while others are sitting idle, waiting for you to run any job in them. To the careful reader of this book, the thread pool pattern would seem like an old acquaintance. After all, it is nothing more than a variation on a object pool pattern, which was discussed in Chapter 2, Singleton, Dependency Injection, Lazy Initialization, and Object Pool.
Using a thread pool minimizes the time a background task needs to start up. Creating a thread can take some ...