Executors的工厂方法提供的5种不同的线程池

原创 2015年11月17日 18:51:00
1、newFixedThreadPool() : 
作用:该方法返回一个固定线程数量的线程池,该线程池中的线程数量始终不变,即不会再创建新的线程,也不会销毁已经创建好的线程,自始自终都是那几个固定的线程在工作,所以该线程池可以控制线程的最大并发数。 
栗子:假如有一个新任务提交时,线程池中如果有空闲的线程则立即使用空闲线程来处理任务,如果没有,则会把这个新任务存在一个任务队列中,一旦有线程空闲了,则按FIFO方式处理任务队列中的任务。


2、newCachedThreadPool() : 
作用:该方法返回一个可以根据实际情况调整线程池中线程的数量的线程池。即该线程池中的线程数量不确定,是根据实际情况动态调整的。 
栗子:假如该线程池中的所有线程都正在工作,而此时有新任务提交,那么将会创建新的线程去处理该任务,而此时假如之前有一些线程完成了任务,现在又有新任务提交,那么将不会创建新线程去处理,而是复用空闲的线程去处理新任务。那么此时有人有疑问了,那这样来说该线程池的线程岂不是会越集越多?其实并不会,因为线程池中的线程都有一个“保持活动时间”的参数,通过配置它,如果线程池中的空闲线程的空闲时间超过该“保存活动时间”则立刻停止该线程,而该线程池默认的“保持活动时间”为60s。


3、newSingleThreadExecutor() : 
作用:该方法返回一个只有一个线程的线程池,即每次只能执行一个线程任务,多余的任务会保存到一个任务队列中,等待这一个线程空闲,当这个线程空闲了再按FIFO方式顺序执行任务队列中的任务。


4、newScheduledThreadPool() : 
作用:该方法返回一个可以控制线程池内线程定时或周期性执行某任务的线程池。


5、newSingleThreadScheduledExecutor() : 
作用:该方法返回一个可以控制线程池内线程定时或周期性执行某任务的线程池。只不过和上面的区别是该线程池大小为1,而上面的可以指定线程池的大小。
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

黑马程序员,用Executors来创建三种java的自带线程池

今天看视频自学了java线程池,如果学习线程池的具体实现方法,在ExecutorService中有许多函数要重写,许多参数我也不太懂,所以我只是看了Executors类中三个工厂方法来创建线程池。 1...

Executors类中创建线程池的几种方法的分析

Executors类中创建线程池的几种方法的分析要配置一个线程池是比较复杂的,尤其是对于线程池的原理不是很清楚的情况下,很有可能配置的线程池不是较优的,因此在Executors类里面提供了一些静态工厂...

Java Executors(线程池)

Sun在Java5中,对Java线程的类库做了大量的扩展,其中线程池就是Java5的新特征之一,除了线程池之外,还有很多多线程相关的内容,为多线程的编程带来了极大便利。为了编写高效稳定可靠的多线程程序...

Java线程池详解:ThreadPoolExecutor、Executors

在操作系统中,线程是一个非常重要的资源,频繁创建和销毁大量线程会大大降低系统性能。Java线程池原理类似于数据库连接池,目的就是帮助我们实现线程复用,减少频繁创建和销毁线程。ThreadPoolExe...

Java Executors 和 ThreadPoolExecutor 线程池

Executors提供四种线程池,分别为: newCachedThreadPool 创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。线程池为无限大,当执...
  • xlxxcc
  • xlxxcc
  • 2016年08月04日 00:21
  • 1716

线程池系列一:线程池作用及Executors方法讲解

线程池的作用:      线程池作用就是限制系统中执行线程的数量。      根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费了系统资源,多了造成系统拥挤效率不高。...

Java 并发:Executors 和线程池(不错)

本文译自:Java Concurrency – Part 7 : Executors and thread pools 让我们开始来从入门了解一下 Java 的并发编程。 本文主要介绍如何开始创建...

Java并发学习之十——用线程工厂创建线程

本文是学习网络上的文章时的总结,感谢大家无私的分享。  1、工厂模式是最有用的设计模式。它是一个创造模式,还有他的目的是创建一个 或者几个类对象的对象。有了这个工厂,我们有这些优势集中创建对象...

java.util.concurrent.Executors 类

此包中所定义的 Executor、ExecutorService、ScheduledExecutorService、ThreadFactory 和 Callable 类的工厂和实用方法。此类支...

多线程并发库高级应用 之 传统定时器、互斥、同步通信技术

笔记摘要:                 这里分析了多线程的一些细节问题,并介绍了传统定时器的创建,同时实现了根据自己的调度计划的自定义定时器,对于传统互斥技术中发现的内部类问题,   ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Executors的工厂方法提供的5种不同的线程池
举报原因:
原因补充:

(最多只允许输入30个字)