文章目录
- 前言
- 添加任务
- 实现流程
- 函数实现
- 获取线程池信息
- 获取线程池工作个数
- 获取线程池中活着的线程数量
- 线程池的销毁
- 实现流程
- 函数实现
- 代码概况
- 总结
前言
在并发编程中,线程池是一种常见的设计模式,它可以有效地管理和控制线程的执行。在Linux C语言环境下,我们可以使用POSIX线程库(pthread)来创建和控制线程池。线程池中的线程可以执行一系列的任务,这些任务通常是独立且相互没有依赖关系的。本文将重点介绍如何在Linux C语言环境下,往线程池里添加任务和进行其他操作。
添加任务
实现流程
这段代码的实现流程是为线程池添加任务的过程,具体步骤如下:
- 锁定线程池:首先,使用互斥锁
mutexPool
锁定线程池,确保在添加任务时不会与其他线程发生冲突。 - 等待队列非满:如果任务队列已满且线程池未关闭,线程将等待
notFull
条件变量,直到队列中有空间添加新任务。 - 检查线程池状态:如果线程池已经关闭,则解锁线程池并返回,不再添加任务。
- 添加任务:将任务函数和参数添加到任务队列的尾部,并更新队列尾部索引和队列大小。
- 通知工作线程:使用条件变量
notEmpty
通知工作线程有新任务添加。 - 解锁线程池:完成任务添加后,解锁线程池,允许其他线程访问。