C 线程池使用示例

线程池包含哪些东西:

1.任务集合

2.执行单元集合(线程集合)

3.管理组件(线程池)

        1.加锁,2.条件等待,3.任务栈指针,4.线程栈指针

                                                                图 1 

任务单元结构

typedef struct Task{
    void (*func)(void *);    //任务函数指针(回调函数) 参数、返回不确定:定义void *
    void *param_data;        //回调函数参数,    类型不确定void *
    struct Task *pre;        //前驱节点
    struct Task *next;        //后继节点
}TASK;

执行单元栈结构:线程集合的封装

 

                                                                 图 2 线程队列

typedef struct Execute{
    prhead_t threadid;        //线程ID
    struct Execute *pre;
    struct Execute *next;

}EXECUTE;

 管理组件

typedef struct Manager{
    TASK *ntask;
    EXECUTE *execute;
    int shutdown;	// 销毁标志
    pthread_mutex_t lock;
    pthread_cond_t cond;
}MANAGER;

添加任务:

<
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值