C++ - Thread Pool
Table of Contents
Introduction
Threadpool is a C++ thread pool written by Philipp Henkel based on boost library. It provides a variety of thread pools with easy usage.
Installation
As a prequisite, boost library should be installed in advance, e.g.,
pacman -S boost
Threadpool consists only of header files, and therefore the building operation is not needed. The only operation is to copy the header file threadpool.hpp and folder threadpool/ to directory /usr/include/boost.
Usage
For usage, header file #include <boost/threadpool.hpp> should be included.
An example of first-in first-out (FIFO) thread pool utilization can be provided as follows.
#include <memory>
#include <boost/threadpool.hpp>
using namespace std;
using namespace boost::threadpool;
int main(int argc, char *argv[])
{
/// Create a FIFO thread pool with 9 worker threads.
unique_ptr<pool> tp = make_unique<pool>(9);
/// Submit 10000 tasks, function(para1, para2), to the thread pool for excutation.
for (size_t para1 = 0; para1 < 100; ++para1)
for (size_t para2 = 0; para2 < 100; ++para2)
tp->schedule(bind(&function, para1, para2));
/// Synchronization for all the threads.
tp->wait();
return 0;
}