A simple thread pool implementation that uses POSIX pthread
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Samer Afach 8853b01891 Updated header guard name 6 years ago
examples Added end of program to print 6 years ago
include Updated header guard name 6 years ago
src First commit 6 years ago
Makefile First commit 6 years ago
README.md Added readme file for git 6 years ago
Threadpool_pthread.pro First commit 6 years ago


Simple Thread Pool for POSIX pthread

This is a very simple implementation of a ThreadPool that uses POSIX threads. It's written to be simple, not versatile.


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


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_pthread.h
  • Add the sources in the directory src to your sources
  • Link to pthread (with -pthread on Linux/MAC/POSIX systems, or download the Windows version of pthread and use it)
  • Start coding!

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

  • Create an object ThreadPool_pthread pool(num), where num is the number of threads
  • Use the member function pool.push_task(function, parameters), to add tasks to the pool, where function is a function pointer to the function to be added, and parameters is a void* that contains the parameters.
  • Call pool.finish(), which will block until all tasks are finished.

Note: Return values in the function are omitted. Note: The function signature is void* function(void* parameters).


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