Author image

Thread Pool


A thread pool is a software design pattern that helps programmers achieve concurrency in an optimal way. By maintaining a pool of threads ready to execute at any moment performance is increased since latency is minimized by keeping a set of threads always available; at the ready, instead of frequently starting them up and destroying them because of frequent brief tasks. Thus we avoid short lived threads which break concurrency.

All this because creating and destroying threads takes a longer time than keeping them constantly alive and waiting.

It stands to reason for me to want to make a thread pool to test my understanding of various modern C++ features and multithreading, as well as have it adorn various other projects that could certainly benefit from its features.

Design

  • there is an array of threads - m_pool
  • there is a FIFO queue of tasks (a Task should be a...

1