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
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
- Use the member function
pool.push(function), to add tasks to the pool, where
functionis a function object (functor) of the task of type void().
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 git.afach.de