简介

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学习相关推荐

  1. Java 线程池详解学习:FixedThreadPool,CachedThreadPool,ScheduledThreadPool...

    Java常用的线程池有FixedThreadPool和CachedThreadPool,我们可以通过查看他们的源码来进行学习. Java的源码下载参考这篇文章:Java源码下载和阅读(JDK1.8) ...

  2. Java线程池详解学习:ThreadPoolExecutor

    Java线程池详解学习:ThreadPoolExecutor Java的源码下载参考这篇文章:Java源码下载和阅读(JDK1.8) - zhangpeterx的博客 在源码的目录java/util/ ...

  3. Java 线程池之FixedThreadPool(Java代码实战-003)

    import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util ...

  4. 线程池之SingleThreadPool学习

    简介 SingleThreadPool是使用单个工作线程的线程池. 创建方法 public static ExecutorService newSingleThreadExecutor() {retu ...

  5. Java线程池 - 问题驱动学习

    Java线程池 本章内容: 1.问题驱动"Java线程池"学习 2.线程池的功能需求 3.实现Thread Pool模式 4.JUC Executors源码分析

  6. java定长池,java线程池源码学习

    使用Executors创建线程池 Executor是一个工厂类,可以直接创建线程池,从最简单的定长线程池开始学习 public static ExecutorService newFixedThrea ...

  7. 线程池之ScheduledThreadPool学习

    简介 ScheduledThreadPool是一个能实现定时.周期性任务的线程池. 创建方法 public static ScheduledExecutorService newScheduledTh ...

  8. 线程池之CachedThreadPool学习

    简介 CachedThreadPool是一个根据需要创建线程的线程池. 创建方法 public static ExecutorService newCachedThreadPool() {return ...

  9. java线程池的使用学习

    目录 1. 线程池的创建 2. 线程池的运行规则 3. 线程池的关闭 4. 线程池的使用场合 5. 线程池大小的设置 6 实现举例 1. 线程池的创建 线程池的创建使用ThreadPoolExecut ...

最新文章

  1. 别得意,你只是假装收藏了而已
  2. pwa+webpack,初探与踩坑
  3. IOS7 ~ Xcode5 制作 framework
  4. http、https、密码学基础、GET和POST区别
  5. AngularJs 中ngModel绑定HTML5 date数据同步问题
  6. 中科院开发者公开道歉:将木兰编程语言夸大为“完全自主开发”
  7. 论文密级_2019年毕业研究生论文提交的通知
  8. 剑指offer面试题58 - I. 翻转单词顺序(双指针)
  9. 【生活相关】三(米新江老师语录)
  10. Git(1):一个能够快速下载Git.exe的方法
  11. Raisecom 交换机防止ARP欺骗攻击及防止多个DHCP服务器方法
  12. NOI 1818:红与黑(C++)
  13. Java面试:数据库,Java,框架,前端技术。应有尽有
  14. 生存模型的calibration需要注意的一个问题
  15. java 制作pdf模板,Java-pdf模板制作流程-使用pdf 模板生成pdf文件
  16. Python小游戏--数字“炸弹“
  17. 还敢随便抄?Stack Overflow上最火这段代码有Bug!
  18. 2018计算机专业考研报名人数,2018年全国考研报考人数、各省市考研报考人数、历年考研录取率、全日制及非全日制硕士研究生比例及考研动机分析【图】...
  19. Python关于取模%你了解多少?
  20. inotia4 android mod,Inotia4——武器隐藏属性【完整篇】

热门文章

  1. java 不可修改的集合对象_java集合:关于hashmap存储一个对象,中间改变对象的值,为什么再remove不能用新名字来删除...
  2. 分享一个高质量的 小程序UI框架
  3. 人类又双叒叕输了,就没人能管管这条“狗”吗?
  4. java 读取配置文件中的列表
  5. iframe 父页面与子页面之间的方法的相互调用
  6. (三)Sass和Compass--制作精灵图片
  7. oracle 追踪特定sql语句
  8. Html5 FileReader 对文件进行Base64编码
  9. 爬虫系列之----Requests库
  10. 概念的图解 —— 数学