线程池学习

一、什么是线程池

线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。

二、线程池的特性

1.减少在创建和销毁线程上所花的时间以及系统资源的开销
2.避免因系统创建大量线程而导致消耗完系统内存的情况出现

这里类比数据库连接池,这种“池”的作用一般就是两点:

  • 复用已有资源
  • 控制资源总量

三、使用场景

1、需要大量的线程来完成任务,且完成任务的时间比较短。 WEB服务器完成网页请求这样的任务,使用线程池技术是非常合适的。因为单个任务小,而任务数量巨大,你可以想象一个热门网站的点击次数。 但对于长时间的任务,比如一个Telnet连接请求,线程池的优点就不明显了。因为Telnet会话时间比线程的创建时间大多了。
2、对性能要求苛刻的应用,比如要求服务器迅速响应客户请求。
3、接受突发性的大量请求,但不至于使服务器因此产生大量线程的应用。突发性大量客户请求,在没有线程池情况下,将产生大量线程,虽然理论上大部分操作系统线程数目最大值不是问题,短时间内产生大量线程可能使内存到达极限,并出现"OutOfMemory"的错误。
 

四、使用方式

原文地址:https://www.cnblogs.com/thiaoqueen/p/8718159.html