用Executors来创建三种java的自带线程池
来源:互联网 发布:如何成为一个美工 编辑:程序博客网 时间:2024/04/27 20:55
转载地址:http://blog.csdn.net/u012605440/article/details/42132269
如果学习线程池的具体实现方法,在ExecutorService中有许多函数要重写,许多参数我也不太懂,所以我只是看了Executors类中三个工厂方法来创建线程池。
1.newSingleThreadExecutor
这个方法创建的线程池里只能同时运行一个线程,如果该线程在执行途中异常结束了,线程池会重新创建一个线程继续执行。
2.FixedThreadPool(int Threads)
这种线程池里可同时运行指定数量的线程,每完成了一个任务时就再创建一个线程去执行任务,直到线程数量达到线程池可同时运行的最大值,同singleThreadExecutor,如果有一个线程异常结束了,会自动创建一个线程补充其执行。
3.CachedThreadPool
这种线程池也是在完成一个任务后再创建一个线程,但不同于fixedThreadPool的是它没有限制数量,它里面所能容纳的最大线程数量理论上是依据计算机内存的大小而定的。另外,当线程池大小超过需要运行的线程时,线程池就会回收空闲的线程。而任务增加时又将智能的添加新线程来执行任务。
在JDK帮助文档中,有如此一段话:“强烈建议程序员使用较为方便的Executors工厂方法Executors.newCachedThreadPool()(无界线程池,可以进行自动线程回收)、Executors.newFixedThreadPool(int)(固定大小线程池)和Executors.newSingleThreadExecutor()(单个后台线程)。它们均为大多数使用场景预定义了设置。”
我测试了三种线程池,代码如下:
- 顶
- 0
- 黑马程序员,用Executors来创建三种java的自带线程池
- 用Executors来创建三种java的自带线程池
- Java 自带的线程池Executors.newFixedThreadPool
- Java 自带的线程池Executors.newFixedThreadPool
- Java自带的线程池Executors.newFixedThreadPool
- Java 自带的线程池Executors.newFixedThreadPool
- Java 自带的线程池Executors.newFixedThreadPool
- Java 多线程池ThreadPoolExecutor解析及Executors类中提供的静态方法来创建线程池
- java学习——用 Executors创建线程池
- Java 使用Executors创建线程池
- java线程池(三) Executors.newSingleThreadExecutor
- Executors创建线程池的四种方法
- Executors 工具类 创建 的 线程池
- Executors创建线程池的弊端
- Java Executors(线程池)
- java Executors(线程池)
- Java Executors(线程池)
- Java Executors(线程池)
- [转] C#7.0新特性(VS2017可用)
- 面向对象的七大原则
- Linear Classification
- Android开发工具
- 排序算法2--简单选择排序、堆排序
- 用Executors来创建三种java的自带线程池
- pta 习题集 5-17九宫格输入法
- 基于 树莓派&opencv&face++开发考勤机(一)
- Failed to import pydot
- C# 模板文件比对——增强版
- java.lang.UnsupportedClassVersionError: javax/servlet/ServletContext : Unsupported major.minor versi
- Openlayers WFS 跨域问题解决思路
- LeetCode 461. Hamming Distance
- java权限修饰符作用域