diff --git a/README.md b/README.md new file mode 100644 index 0000000..8247e9c --- /dev/null +++ b/README.md @@ -0,0 +1,31 @@ +# 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, 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)`. + +### Makefiles + +There's a make file that builds the example. There's also a qmake file that builds the example too. \ No newline at end of file