线程池之FixedThreadPool学习
简介
FixedThreadPool是可重用固定线程数的线程池。
创建方法
public static ExecutorService newFixedThreadPool(int nThreads) {return new ThreadPoolExecutor(nThreads, nThreads,0L, TimeUnit.MILLISECONDS,new LinkedBlockingQueue<Runnable>());}
corePoolSize和maximumPoolSize都设置为创建FixedThreadPool指定的参数nThreads,即FixedThreadPool只有核心线程,且数量固定,没有非核心线程。keepAliveTime设置为0L,代表多余的线程会被立即终止。因为不会产生多余的线程,所以keepAliveTime是无效的参数;任务队列采用了无界的阻塞队列LinkedBlockingQueue(容量默认为Integer.MAX_VALUE)。
execute方法的执行
当执行execute方法时,若当前运行的线程未达到核心线程数corePoolSize,就创建核心线程处理任务;否则,就把任务添加到LinkedBlockingQueue中。
总结
FixedThreadPool是一个有固定核心线程数的线程池,且这些核心线程不会被回收。当线程数超过corePoolSize时,就把任务存进任务队列。若线程池有空闲线程,就去任务队列中取任务。
线程池之FixedThreadPool学习相关推荐
- Java 线程池详解学习:FixedThreadPool,CachedThreadPool,ScheduledThreadPool...
Java常用的线程池有FixedThreadPool和CachedThreadPool,我们可以通过查看他们的源码来进行学习. Java的源码下载参考这篇文章:Java源码下载和阅读(JDK1.8) ...
- Java线程池详解学习:ThreadPoolExecutor
Java线程池详解学习:ThreadPoolExecutor Java的源码下载参考这篇文章:Java源码下载和阅读(JDK1.8) - zhangpeterx的博客 在源码的目录java/util/ ...
- Java 线程池之FixedThreadPool(Java代码实战-003)
import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util ...
- 线程池之SingleThreadPool学习
简介 SingleThreadPool是使用单个工作线程的线程池. 创建方法 public static ExecutorService newSingleThreadExecutor() {retu ...
- Java线程池 - 问题驱动学习
Java线程池 本章内容: 1.问题驱动"Java线程池"学习 2.线程池的功能需求 3.实现Thread Pool模式 4.JUC Executors源码分析
- java定长池,java线程池源码学习
使用Executors创建线程池 Executor是一个工厂类,可以直接创建线程池,从最简单的定长线程池开始学习 public static ExecutorService newFixedThrea ...
- 线程池之ScheduledThreadPool学习
简介 ScheduledThreadPool是一个能实现定时.周期性任务的线程池. 创建方法 public static ScheduledExecutorService newScheduledTh ...
- 线程池之CachedThreadPool学习
简介 CachedThreadPool是一个根据需要创建线程的线程池. 创建方法 public static ExecutorService newCachedThreadPool() {return ...
- java线程池的使用学习
目录 1. 线程池的创建 2. 线程池的运行规则 3. 线程池的关闭 4. 线程池的使用场合 5. 线程池大小的设置 6 实现举例 1. 线程池的创建 线程池的创建使用ThreadPoolExecut ...
最新文章
- 别得意,你只是假装收藏了而已
- pwa+webpack,初探与踩坑
- IOS7 ~ Xcode5 制作 framework
- http、https、密码学基础、GET和POST区别
- AngularJs 中ngModel绑定HTML5 date数据同步问题
- 中科院开发者公开道歉:将木兰编程语言夸大为“完全自主开发”
- 论文密级_2019年毕业研究生论文提交的通知
- 剑指offer面试题58 - I. 翻转单词顺序(双指针)
- 【生活相关】三(米新江老师语录)
- Git(1):一个能够快速下载Git.exe的方法
- Raisecom 交换机防止ARP欺骗攻击及防止多个DHCP服务器方法
- NOI 1818:红与黑(C++)
- Java面试:数据库,Java,框架,前端技术。应有尽有
- 生存模型的calibration需要注意的一个问题
- java 制作pdf模板,Java-pdf模板制作流程-使用pdf 模板生成pdf文件
- Python小游戏--数字“炸弹“
- 还敢随便抄?Stack Overflow上最火这段代码有Bug!
- 2018计算机专业考研报名人数,2018年全国考研报考人数、各省市考研报考人数、历年考研录取率、全日制及非全日制硕士研究生比例及考研动机分析【图】...
- Python关于取模%你了解多少?
- inotia4 android mod,Inotia4——武器隐藏属性【完整篇】
热门文章
- java 不可修改的集合对象_java集合:关于hashmap存储一个对象,中间改变对象的值,为什么再remove不能用新名字来删除...
- 分享一个高质量的 小程序UI框架
- 人类又双叒叕输了,就没人能管管这条“狗”吗?
- java 读取配置文件中的列表
- iframe 父页面与子页面之间的方法的相互调用
- (三)Sass和Compass--制作精灵图片
- oracle 追踪特定sql语句
- Html5 FileReader 对文件进行Base64编码
- 爬虫系列之----Requests库
- 概念的图解 —— 数学