Advertisement

系统编程课程(08):线程池

阅读量:

目录

与线程池相关的数据结构

线程池功能接口说明

1,线程池初始化:init_pool( )

2,任务提交:add_task( )

3,扩展运行线程数量:add_thread( )

4,减少运行线程数量:remove_thread( )

5,释放线程池资源:destroy_pool( )

线程池架构模型

代码示例部分

thread_pool.h

thread_pool.c

main.c


线程池结构体设计与实现

结构体原型 struct task
功能描述 任务实例,包含需要执行的函数及其参数,通过链表连成一个任务队列
结构体成员 void *(*do_task)(void *arg); void *arg ; struct task *next ;
备注 任务实例最终形成一条单向链表
结构体原型 struct thread_pool
功能描述 线程池实例,包含一个线程池的所有信息
结构体成员 pthread_mutex_t lock ; // 互斥锁,保护任务队列 pthread_cond_t cond ; // 条件变量,同步所有线程 bool ****shutdown

全部评论 (0)

还没有任何评论哟~