C++11 threading primitives are still relatively low level. They can be used to write a higher level construct, like a thread pool:
C++14
struct tasks {
// the mutex, condition variable and deque form a single
// thread-safe triggered queue of tasks:
std::mutex m;
std::condition_variab...