线程池技术

服务器都具有一个共同点:单位时间内必须处理很多并发的连接请求,但处理时间却相对较短.传统多线程方案中我们采用的服务器模型则是一旦接受到请求之后,即创建一个新的线程,由该线程执行任务.任务执行完毕后,线程退出,这就是是"即时创建,即时销毁"的策略.尽管与创建进程相比,创建线程的时间已经大大的缩短,但是如果提交给线程的任务是执行时间较短,而且执行次数及其频繁,那么服务器将处于不停的创建线程,销毁线程的状态.

线程池是采用多线程解决方案来提高系统性能的一个最为出色的模型,它通过预创建一定数量的工作线程来对系统进行并发处理,使得系统的运行效率提高.因为线程池能使得系统采用较为轻量的,可控的系统资源实现系统并发处理能力的最大化,所以许多应用软件都采用了线程池模型.

通常线程池所允许的并发线程具有上界的,如果同时需要并发的线程数超过上界,那么一部分线程将等待.而传统方案中,如果同时请求数据为200,那么最坏情况下,系统可能需要产生200个线程.尽管这不是一个很大的数目,但是也有系统达不到这个要求.

线程池模型有许多种,常见的有三种:

任务队列控制的线程池模型,

工作线程控制的线程池模型,

主控线程控制的线程池模型.

 

任务队列控制的线程模型主要是通过任务队列上的信号来控制线程池中的线程调度。

快递公司送货模型

扫描二维码关注公众号,回复: 4687439 查看本文章

线程池C++的封装如下:

https://download.csdn.net/download/gaodes/10799595

 

猜你喜欢

转载自blog.csdn.net/Gaodes/article/details/84332020