A thread pool reuses a fixed number of workers. It assigns incoming jobs to idle workers and queues jobs when every worker is busy.
Bounded workers limit resource use, but a growing queue increases latency. CPU-bound and I/O-heavy jobs may need different pool sizes.
When to use
Use it for repeated tasks when creation cost and concurrency limits matter.