# 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...). ### License 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 ### Usage 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. ### Makefiles There's a make file that builds the example. There's also a qmake file that builds the example too. ### Credits This library was written by Samer Afach, find this code in the repository git.afach.de