Executors的工厂方法提供的5种不同的线程池
来源:互联网 发布:windows 2000 ghost 编辑:程序博客网 时间:2024/06/05 22:43
1、newFixedThreadPool() :
作用:该方法返回一个固定线程数量的线程池,该线程池中的线程数量始终不变,即不会再创建新的线程,也不会销毁已经创建好的线程,自始自终都是那几个固定的线程在工作,所以该线程池可以控制线程的最大并发数。
栗子:假如有一个新任务提交时,线程池中如果有空闲的线程则立即使用空闲线程来处理任务,如果没有,则会把这个新任务存在一个任务队列中,一旦有线程空闲了,则按FIFO方式处理任务队列中的任务。
2、newCachedThreadPool() :
作用:该方法返回一个可以根据实际情况调整线程池中线程的数量的线程池。即该线程池中的线程数量不确定,是根据实际情况动态调整的。
栗子:假如该线程池中的所有线程都正在工作,而此时有新任务提交,那么将会创建新的线程去处理该任务,而此时假如之前有一些线程完成了任务,现在又有新任务提交,那么将不会创建新线程去处理,而是复用空闲的线程去处理新任务。那么此时有人有疑问了,那这样来说该线程池的线程岂不是会越集越多?其实并不会,因为线程池中的线程都有一个“保持活动时间”的参数,通过配置它,如果线程池中的空闲线程的空闲时间超过该“保存活动时间”则立刻停止该线程,而该线程池默认的“保持活动时间”为60s。
3、newSingleThreadExecutor() :
作用:该方法返回一个只有一个线程的线程池,即每次只能执行一个线程任务,多余的任务会保存到一个任务队列中,等待这一个线程空闲,当这个线程空闲了再按FIFO方式顺序执行任务队列中的任务。
4、newScheduledThreadPool() :
作用:该方法返回一个可以控制线程池内线程定时或周期性执行某任务的线程池。
5、newSingleThreadScheduledExecutor() :
作用:该方法返回一个可以控制线程池内线程定时或周期性执行某任务的线程池。只不过和上面的区别是该线程池大小为1,而上面的可以指定线程池的大小。
作用:该方法返回一个固定线程数量的线程池,该线程池中的线程数量始终不变,即不会再创建新的线程,也不会销毁已经创建好的线程,自始自终都是那几个固定的线程在工作,所以该线程池可以控制线程的最大并发数。
栗子:假如有一个新任务提交时,线程池中如果有空闲的线程则立即使用空闲线程来处理任务,如果没有,则会把这个新任务存在一个任务队列中,一旦有线程空闲了,则按FIFO方式处理任务队列中的任务。
2、newCachedThreadPool() :
作用:该方法返回一个可以根据实际情况调整线程池中线程的数量的线程池。即该线程池中的线程数量不确定,是根据实际情况动态调整的。
栗子:假如该线程池中的所有线程都正在工作,而此时有新任务提交,那么将会创建新的线程去处理该任务,而此时假如之前有一些线程完成了任务,现在又有新任务提交,那么将不会创建新线程去处理,而是复用空闲的线程去处理新任务。那么此时有人有疑问了,那这样来说该线程池的线程岂不是会越集越多?其实并不会,因为线程池中的线程都有一个“保持活动时间”的参数,通过配置它,如果线程池中的空闲线程的空闲时间超过该“保存活动时间”则立刻停止该线程,而该线程池默认的“保持活动时间”为60s。
3、newSingleThreadExecutor() :
作用:该方法返回一个只有一个线程的线程池,即每次只能执行一个线程任务,多余的任务会保存到一个任务队列中,等待这一个线程空闲,当这个线程空闲了再按FIFO方式顺序执行任务队列中的任务。
4、newScheduledThreadPool() :
作用:该方法返回一个可以控制线程池内线程定时或周期性执行某任务的线程池。
5、newSingleThreadScheduledExecutor() :
作用:该方法返回一个可以控制线程池内线程定时或周期性执行某任务的线程池。只不过和上面的区别是该线程池大小为1,而上面的可以指定线程池的大小。
0 0
- Executors的工厂方法提供的5种不同的线程池
- Executors提供的四种线程池
- Executors提供的四种线程池
- Executors提供的四种线程池和自定义线程池
- Executors工厂类创建线程池的底层实现
- Executors创建线程池的四种方法
- 线程篇--线程池Executors类几种方法的使用
- Executors的四种线程池
- Java 多线程池ThreadPoolExecutor解析及Executors类中提供的静态方法来创建线程池
- 面试问题Executors有哪些创建线程池的方法
- java5线程池详解与Executors类创建不同线程池的用法
- java5线程池详解与Executors类创建不同线程池的用法
- Executors类中创建线程池的几种方法的分析
- Executors类中创建线程池的几种方法的分析
- Executors类中创建线程池的几种方法的分析
- Java多线程:类Executors主要的工厂方法
- Executors 工具类 创建 的 线程池
- 线程池类Executors的运用
- 网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析
- 第二题、打鱼问题
- 谷歌开源Gumbo:纯C语言实现的HTML5解析库
- 小手一抖,eclipse妙用
- 数学之美番外篇:平凡而又神奇的贝叶斯方法
- Executors的工厂方法提供的5种不同的线程池
- 关于C++转换函数
- 新型网站开发之:从服务端取数据的最简方法
- 1099. Build A Binary Search Tree
- 回溯法-旅行售货员问题(C语言)
- android 自定义NotifiCation
- android 设计高性能的应用程序
- How Did Watson Answer —— Automatic Knowledge Acquisition
- ScrollView套ListView种种问题