生产者消费者编程-线程池信号量
生产者消费者编程实现,采用了线程池以及信号量技术。
线程的概念就不多说,首先说一下多线程的好处:多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。
?
那么为什么又需要线程池呢?
?
我们知道应用程序创建一个对象,然后销毁对象是很耗费资源的。创建线程,销毁线程,也是如此。因此,我们就预先生成一些线程,等到我们使用的时候在进行调度,于是,一些池化资源技术就这样的产生了。
一般一个简单线程池至少包含下列组成部分。
1)????????线程池管理器(ThreadPoolManager):用于创建并管理线程池
2)????????工作线程(WorkThread):?线程池中线程
3)????????任务接口(Task):每个任务必须实现的接口,以供工作线程调度任务的执行。
4)????????任务队列:用于存放没有处理的任务。提供一种缓冲机制。
图示:
图1 线程池图解
生产者消费者模型C语言代码实现:
thread_pool_pv.h:
[cpp]?view plaincopyprint?
//线程池编程实现??
#ifndef?THREAD_POOL_H??
#define?THREAD_POOL_H??
??
#include?stdio.h??
#include?stdlib.h??
#include?semapho
您可能关注的文档
最近下载
- 中国涉外产品责任法律适用:现状、困境与突破.docx VIP
- 矿井防治水专项设计.pdf VIP
- 专精特新战略:中小企业高质量发展路径研究.docx VIP
- 儿童过敏性哮喘尘螨过敏原特异性免疫治疗循证指南(医生版).pptx VIP
- 2026企业财税合规自查培训 提前排查风险避免税局稽查.pptx VIP
- 2024 - 2025学年人教版五年级下册美术期末考试卷附答案 (三套).docx VIP
- 2025年易制毒化学品安全培训试卷(含答案).docx VIP
- 2025年招标师围标、串标、陪标等违法违规行为的智能识别与防范专题试卷及解析.pdf VIP
- IEC60335-1-2020中文版-家用和类似用途电器的安全第1部分:通用要求(中文翻译稿).pdf VIP
- 基于单片机空气质量PM2.5测量设计论文.doc VIP
原创力文档

文档评论(0)