关于Java线程池的技术分享

下面是我对Java线程池的知识总结,分享给大家。

java线程池

Java通过Executors提供了四种线程池,分别是:

1. New Cached Thread Pool

缓存型线程池 ,可根据需要灵活回收空闲线程,可根据需要新建线程,通常用于执行生命周期很短的异步型任务。

2. New Fixed Thread Pool

定长线程池,固定数目的线程数,控制最大并发数 。

3. New Scheduled Thread Pool

调度型线程池/定长/定时/周期性任务。

4. New Single Thread Executor

单例线程保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。

为什么需要线程池

1. 在Java中,如果每当一个请求到达就创建一个新线程,开销是相当大的。在实际使用中,每个请求创建新线程的服务器在创建和销毁线程上花费的时间和消耗的系统资源,甚至可能要比花在处理实际的用户请求的时间和资源要多得多。

2. 线程缺乏统一管理,可能无限制新建线程,相互之间竞争。

3. 缺乏扩展性

4. 缺乏可重用性

什么时候需要线程池

1. 当一个Web服务器接受到大量短小线程的请求时,使用线程池技术是非常合适的,它可以大大减少线程的创建和销毁次数,提高服务器的工作效率。

2. 需要提供定时执行、定期执行、单线程、并发数控制等功能。

总结

java通过多线程的方式来实现并发,为了方便的管理线程,JAVA采用线程池的方式对线线程的整个生命周期进行管理。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180225A0L6YD00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券