1 Star 0 Fork 0

mtgo/NETwork

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
threadpoolsimple.h 1.25 KB
一键复制 编辑 原始数据 按行查看 历史
mtgo 提交于 2022-08-09 09:32 . add threadpoolsimple.h.
//线程池头文件
#ifdef _THREADPOOL_H
#define _THREADPOOL_H
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <pthread.h>
#include <unistd.h>
//任务结构体
typedef struct _PoolTask
{
int tasknum; //模拟任务编号
void *arg; //回调函数参数
void (*task_func)(void *arg); //任务的回调函数
}PoolTask;
//线程池结构体
typedef struct _THREADPOOL_H
{
int max_job_num; //最大任务数
int job_num; //实际任务数
PoolTask *tasks; //任务队列数组
int job_push; //入队位置
int job_pop; //出队位置
int thr_num; //线程池内线程个数
pthread_t *pthreads; //线程池内线程数组
int shutdown; //是否关闭线程池
pthread_mutex_t pool_lock; //线程池的锁
pthread_cond_t empty_task; //任务队列为空的条件变量
pthread_cond_t not_empty_task; //任务队列不为空的条件变量
}ThreadPool;
//线程池创建函数——thrnum代表线程个数,maxtasknum代表最大任务数
void create_threadpool(int thrnum, int maxtasknum);
//线程池摧毁函数
void destroy_threadpool(ThreadPool *pool);
//添加任务到线程池
void addtask(ThreadPool *pool);
//任务回调函数
void taskRun(void *arg);
#endif
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/mtgo666/network.git
git@gitee.com:mtgo666/network.git
mtgo666
network
NETwork
master

搜索帮助