1.3 KiB
1.3 KiB
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.
License
MIT. In other words, you're free to do with this code whatever you want.
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_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, wherefunction
is a function pointer to the function to be added, andparameters
is avoid*
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)
.
Makefiles
There's a make file that builds the example. There's also a qmake file that builds the example too.