1.6 KiB

Simple Thread Pool for C++11

This is a very simple implementation of a ThreadPool based on std::thread. It's written to be simple, not versatile. It works very efficiently for coarse-grained tasks (hence, no multi-pool task-stealing from other threads, etc...).


MIT. In other words, you're free to do with this code whatever you want. Enjoy!

Terms (in short words): -You're free to do anything you wish with this simple library, including any embedding or modifications you wish, with static or dynamic linking (you can't dynamically link it... it's header only! :-) ). -The creator of this library is not to be help liable for anything you do with it. Using this library is your own responsibility


There is an example on how to use the code in the directory examples.

Other than that, all you have to do is:

  • Include the file ThreadPool.h (the library is header-only, no need for sources)
  • Start coding!

Using the code is very simple. All you have to do is:

  • Create an object ThreadPool pool
  • Use the member function pool.push(function), to add tasks to the pool, where function is a function object (functor) of the task of type void().
  • Call pool.finish(), which will block until all tasks are finished.

Note: Return values in the function are omitted. Note: The task function's signature is void function(). If you need to parametrize the function, use std::bind or lambdas.


There's a make file that builds the example. There's also a qmake file that builds the example too.


This library was written by Samer Afach, find this code in the repository