A thread pool is one of the easiest ways to achieve parallelism. It decouples the logical concurrent execution of functions with physical parallelism.
The concept is simple : you create N threads once, and then schedule functions to be executed on these threads at arbitrary moments.
Let's implement this in C++.
C++11 is an awesome extension to the C++ standard. It allows you to write portable, powerful and extensible code with ease. Here are the top features of C++11.