StdThreadPool/README.md

36 lines
1.6 KiB
Markdown
Raw Permalink Normal View History

2017-06-08 04:50:32 +00:00
# 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