浅谈Java四种线程池newCachedThreadPool,newFixedThreadPool,newScheduledThreadPool,newSingleThreadExecutor
来源:互联网 发布:linux mv 覆盖目录 编辑:程序博客网 时间:2024/05/18 17:05
.平时开发过程中,对于线程池的使用,很多都是经过封装好的工具类,使用的时候直接简单的调用即可,有时却没有深入研究封装类里面已经源码的实现,所以这里记录下java四种线程池各自的区别与用法。
最常见的线程使用
new Thread(new Runnable(){
public void run(){
}
}).start();
对于这方方式,有很多问题:
1. 线程没法管理
2. 性能差
3. 没法复用线程
4. 等等
所以这时线程池就起到了作用,java里线程池一般常用到的有一下几种
- newSingleThreadExecutor
创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务, 保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行
适用场景:任务少 ,并且不需要并发执行 - newCachedThreadPool
创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程.
线程没有任务要执行时,便处于空闲状态,处于空闲状态的线程并不会被立即销毁(会被缓存住),只有当空闲时间超出一段时间(默认为60s)后,线程池才会销毁该线程(相当于清除过时的缓存)。新任务到达后,线程池首先会让被缓存住的线程(空闲状态)去执行任务,如果没有可用线程(无空闲线程),便会创建新的线程。
适用场景:处理任务速度 > 提交任务速度,耗时少的任务(避免无限新增线程) - newFixedThreadPool
创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。 - newScheduledThreadPool
创建一个定长线程池,支持定时及周期性任务执行
0 0
- 浅谈Java四种线程池newCachedThreadPool,newFixedThreadPool,newScheduledThreadPool,newSingleThreadExecutor
- Java四种线程池newCachedThreadPool,newFixedThreadPool,newScheduledThreadPool,newSingleThreadExecutor
- Java四种线程池newCachedThreadPool,newFixedThreadPool,newScheduledThreadPool,newSingleThreadExecutor
- Java四种线程池newCachedThreadPool,newFixedThreadPool,newScheduledThreadPool,newSingleThreadExecutor
- Java 四种线程池newCachedThreadPool,newFixedThreadPool,newScheduledThreadPool,newSingleThreadExecutor
- Java 四种线程池newCachedThreadPool,newFixedThreadPool,newScheduledThreadPool,newSingleThreadExecutor
- Java线程池newSingleThreadExecutor newFixedThreadPool newCachedThreadPool newScheduledThreadPool
- Executors 四种线程池newCachedThreadPool,newFixedThreadPool,newScheduledThreadPool,newSingleThreadExecutor
- JAVA线程池 newSingleThreadExecutor,newFixedThreadPool,newCachedThreadPool,newScheduledThreadPool(一)
- 线程池的使用(newCachedThreadPool、newFixedThreadPool、newScheduledThreadPool、newSingleThreadExecutor)
- Java线程池(newCachedThreadPool、newFixedThreadPool、newScheduledThreadPool 、newSingleThreadExector )
- newFixedThreadPool、newSingleThreadExecutor、newCachedThreadPool
- 四种线程池创建及使用(一)newScheduledThreadPool和newCachedThreadPool的使用方法详解
- newfixedthreadpool线程池 与newCachedThreadPool 的区别
- java线程池(四) Executors.newCachedThreadPool
- java线程池newCachedThreadPool
- Java newCachedThreadPool 创建线程池
- java线程池(三) Executors.newSingleThreadExecutor
- 音频的mixer
- 解决ViewPager嵌套时Fragment的mUserVisibleHint属性不同步的问题
- 机器学习-实战-入门-不同语种的识别
- 01背包+完全背包 HDU
- android AsyncTask介绍
- 浅谈Java四种线程池newCachedThreadPool,newFixedThreadPool,newScheduledThreadPool,newSingleThreadExecutor
- (C语言)高精度除法
- 用matlab求有约束条件函数的极值
- Python 异常处理 (四)
- JQuery干货篇之处理元素
- Qt国际化之翻译(VS2013+Qt5.4.1)
- 数据库设计
- 【C++学习笔记】枚举
- yaml语言简介