C++ std::thread thread pool
Go to file
Samer Afach 11332c8cf3 Some reformatting and changed packaged_task to function 2019-06-17 14:38:29 +00:00
include Some reformatting and changed packaged_task to function 2019-06-17 14:38:29 +00:00
.gitignore Some reformatting and changed packaged_task to function 2019-06-17 14:38:29 +00:00
CMakeLists.txt C++11 for unix added. Standard CMake command doesn't work on gcc 4.9 2017-06-09 07:30:19 +02:00
README.md Added license information. 2017-06-08 06:50:32 +02:00
main.cpp Some reformatting and changed packaged_task to function 2019-06-17 14:38:29 +00:00

README.md

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