系统编程课程(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)
还没有任何评论哟~
