A simple C++11 Thread Pool implementation.
Basic usage:
// create thread pool with 4 worker threads, task queue length is 100
ThreadPool pool(4, 100);
// enqueue and store future
auto result = pool.enqueue([](int answer) { return answer; }, 42);
// get result from future
std::cout << result.get() << std::endl;
Or you can use singleton:
// create thread pool
PTHREADPOOL->create(4,100);
// enqueue and store future
auto result = PTHREADPOOL->enqueue([](int answer) { return answer; }, 42);
You can compile example.cpp like that:
g++ -g -Wall -std=c++11 -pthread example.cpp -o example