C-Thread-Pool/example.c
MedicineYeh 90c4561942 add thread name, fix warning in the example
thread name is good for both profiling and debuging
also htop can turn on the option 'Show custom thread names' in 'Display
options'
the warning in example is ‘pthread_self’ [-Wimplicit-function-declaration]
2015-11-24 12:47:50 +08:00

46 lines
1.0 KiB
C

/*
* WHAT THIS EXAMPLE DOES
*
* We create a pool of 4 threads and then add 40 tasks to the pool(20 task1
* functions and 20 task2 functions). task1 and task2 simply print which thread is running them.
*
* As soon as we add the tasks to the pool, the threads will run them. It can happen that
* you see a single thread running all the tasks (highly unlikely). It is up the OS to
* decide which thread will run what. So it is not an error of the thread pool but rather
* a decision of the OS.
*
* */
#include <stdio.h>
#include <pthread.h>
#include "thpool.h"
void task1(){
printf("Thread #%u working on task1\n", (int)pthread_self());
}
void task2(){
printf("Thread #%u working on task2\n", (int)pthread_self());
}
int main(){
puts("Making threadpool with 4 threads");
threadpool thpool = thpool_init(4);
puts("Adding 40 tasks to threadpool");
int i;
for (i=0; i<20; i++){
thpool_add_work(thpool, (void*)task1, NULL);
thpool_add_work(thpool, (void*)task2, NULL);
};
puts("Killing threadpool");
thpool_destroy(thpool);
return 0;
}