生产者消费者编程-线程池+信号量.doc

生产者消费者编程-线程池信号量

生产者消费者编程实现,采用了线程池以及信号量技术。 线程的概念就不多说,首先说一下多线程的好处:多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。 ? 那么为什么又需要线程池呢? ? 我们知道应用程序创建一个对象,然后销毁对象是很耗费资源的。创建线程,销毁线程,也是如此。因此,我们就预先生成一些线程,等到我们使用的时候在进行调度,于是,一些池化资源技术就这样的产生了。 一般一个简单线程池至少包含下列组成部分。 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

文档评论(0)

1亿VIP精品文档

相关文档