#pragma once typedef struct ThreadPool ThreadPool; // 创建线程池并初始化 /** @function: threadPoolCreate @param: min - 创建线程池的最小线程数 @param: max - 创建线程池的最大线程数 @param: queueCapactiy - 任务队列的容量 @returnType: ThreadPool* - 线程池的地址 */ ThreadPool* threadPoolCreate(int min, int max, int queueCapacity); ThreadPool* threadPoolCreateBak01(int min, int max, int queueCapacity); // 销毁线程池,返回值用于判断是否销毁成功,0 - 成功 1 - 失败 (-1) - 无效的线程池地址 int threadPoolDestroy(ThreadPool* pool); // 给线程池添加任务 void threadPoolAddTask(ThreadPool* pool, void(*func)(void*), void* arg); // 获取线程池中工作的线程的个数 int getWorkingThreads(ThreadPool* pool); // 获取线程池中活着的线程的个数 int getALiveThreads(ThreadPool* pool); // 获取线程池中任务队列中任务的个数 int getTaskNum(ThreadPool* pool); // 如果想隐藏线程池里的线程函数,可以将线程函数写入.c的源文件里面 ///////////////////////////////////////////////////////////////////////// // 线程工作函数 void* working(void* arg); // 线程管理者函数 void* manager(void* arg); // 线程自杀函数 void threadExit(ThreadPool* pool);