2021-11-21
线程池
项目地址
.h
typedef enum
{
immediate_shutdown = 1,
graceful_shutdown = 2
} threadpool_shutdown_t;
//
typedef struct {
void (*function)(void *); //线程执行的函数
void *argument; //
} threadpool_task_t;
//定义的线程任务结构?
struct threadpool_t
{
pthread_mutex_t lock; //
pthread_cond_t notify; //
pthread_t *threads; //线程池(首地址
threadpool_task_t *queue; //任务队列(首地址
int thread_count; //线程数
int queue_size; //池内队列大小
int head; //队头
int tail; //队尾
int count; //
int shutdown; //
int started; //
};
threadpool_t *threadpool_create(int thread_count, int queue_size, int flags);
//创建线程池
int threadpool_add(threadpool_t *pool, void (*function)(void *), void *argument, int flags);
//添加任务
int threadpool_destroy(threadpool_t *pool, int flags);
//
int threadpool_free(threadpool_t *pool);
//
static void *threadpool_thread(void *threadpool);
//
.c逻辑