Programming FAQ: What is a thread pool?

Q: What is a thread pool?

A: A thread pool is a group of pre-instantiated, idle threads which stand ready to be given work. These are preferred over instantiating new threads for each task ... because creating a new thread is a relatively expensive task. So, when you need a new thread, it’s usually more efficient to borrow a thread from a pool of pre-created threads that are waiting on standby than it is to create a new thread.

The first part of that answer comes from StackExchange. The second part of that answer (after the “...”) comes from me, and a book I read a few months ago (I can’t remember which one).