ThreadPoolExecutor和Executors的区别
Executors创建的线程有两类
- newFixedThreadPool和newSingleThreadExecutor,队列数量弹性,创建的线程的队列最大值为INTEGER.max容易造成OOM
- newCachedThreadPool和newScheduledThreadPool,线程数量弹性,创建的线程数量最大值为INTEGER.max容易造成OOM
ThreadPoolExecutor的构造方法参数
可以定制你需要的线程池参数:
- corepoolsize 最小线程数,一般设置为服务器核心数量
- maxpoolsiz 最大线程数,当队列满后会扩容到最大线程数
- keepalivetime 当线程池中线程数大于corepoolsize 并且无新增任务时,销毁等待的最大时间。
- unit 销毁时间单位
- workQueue 工作队列
- handler 饱和策略。当现在同时进行的任务数量大于最大线程数量并且队列也已经放满后,线程池采取的一些策略
- AbortPolicy直接抛出异常,RejectedExecutionException.
- CallerRunsPolicy ,调用执行自己的线程来完成任务,当您的任务不能抛弃时采取这个策略,这个策略会给系统带来额外的开销,影响性能。
- DiscardPolicy 直接抛弃掉
- DiscardOldestPolicy 丢弃掉最老的任务。
execute流程

流程说明
- 这里注意一点只有等待队列里放满后,核心线程数才会逐步增加到最大线程数。
- 流程就按照图中的处理机制,就不加以详细说明了,有何问题欢迎留言。
ThreadPoolExecutor和Executors的区别的更多相关文章
- 线程池ThreadPoolExecutor、Executors参数详解与源代码分析
欢迎探讨,如有错误敬请指正 如需转载,请注明出处 http://www.cnblogs.com/nullzx/ 1. ThreadPoolExecutor数据成员 Private final Atom ...
- Java线程池实现原理与技术(ThreadPoolExecutor、Executors)
本文将通过实现一个简易的线程池理解线程池的原理,以及介绍JDK中自带的线程池ThreadPoolExecutor和Executor框架. 1.无限制线程的缺陷 多线程的软件设计方法确实可以最大限度地发 ...
- 001-多线程-JUC线程池-线程池架构-Executor、ExecutorService、ThreadPoolExecutor、Executors
一.概述 1.1.线程池架构图 1. Executor 它是"执行者"接口,它是来执行任务的.准确的说,Executor提供了execute()接口来执行已提交的 Runnable ...
- 在 Java 中 Executor 和 Executors 的区别?
Executors 工具类的不同方法按照我们的需求创建了不同的线程池,来满足业务 的需求. Executor 接口对象能执行我们的线程任务. ExecutorService 接口继承了 Executo ...
- java面试题之Executor和Executors的区别
Executor 接口对象能执行我们的线程任务: Executors 工具类的不同方法按照我们的需求创建了不同的线程池,来满足业务的需求. ExecutorService 接口继承了Executor接 ...
- ThreadPoolExecutor使用和思考(上)-线程池大小设置与BlockingQueue的三种实现区别
工作中多处接触到了ThreadPoolExecutor.趁着现在还算空,学习总结一下. 前记: jdk官方文档(javadoc)是学习的最好,最权威的参考. 文章分上中下.上篇中主要介绍ThreadP ...
- ThreadPoolExecutor 线程池的源码解析
1.背景介绍 上一篇从整体上介绍了Executor接口,从上一篇我们知道了Executor框架的最顶层实现是ThreadPoolExecutor类,Executors工厂类中提供的newSchedul ...
- ThreadPoolExecutor理解
ThreadPoolExecutor组成 ThreadPoolExecutor的核心构造函数: public ThreadPoolExecutor(int corePoolSize, int maxi ...
- 线程池系列一:线程池作用及Executors方法讲解
线程池的作用: 线程池作用就是限制系统中执行线程的数量. 根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果:少了浪费了系统资源,多了造成系统拥挤效率不高.用线程池控制线程数量 ...
- hreadPoolExecutor使用和思考(上)-线程池大小设置与BlockingQueue的三种实现区别
阅读更多 工作中多处接触到了ThreadPoolExecutor.趁着现在还算空,学习总结一下. 前记: jdk官方文档(javadoc)是学习的最好,最权威的参考. 文章分上中下.上篇中主要介绍Th ...
随机推荐
- [转帖] Linux命令拾遗-软件资源观测
https://www.cnblogs.com/codelogs/p/16060443.html 原创:打码日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处. 简介# 这是Linux ...
- reposync与createrepo创建离线yum源的方法
背景 昨天晚上进行了在线升级银河麒麟V10SP2的audit和mate-indicator的rpm包 今天想了下,如果机器无法上网. 必须得在公司内部搭建一套离线的rpm源进行处理 想了下还是使用re ...
- 【图】苹果Safari 6.0停止支持Windows PC (转载)
[图]果Safari 6.0停止支持Windows PC (转载) http://bbs.tianya.cn/post-414-41510-1.shtml 2012年之后 苹果就不在开发 window ...
- ESXi6.5+vCenter6.5 CentOS7 虚拟机启动之后控制台黑屏的解决方案
公司最近搬迁服务器, 服务器的地址都发生了变化, 发现部分机器总是黑屏无法使用, 想了一个坚决办法使服务器能够连接设置地址后使用. 1. 控制台开机. 2. 注意在开机五秒之内打开web控制台, 然后 ...
- JS中typeof和instanceof的区别
01==> 浅谈JS中的typeof和instanceof的区别 // JS中的typeof和instanceof常用来变量是什么类型. // typeof一般返回以下几个字符串: // Str ...
- 【踩坑记录】SpringBoot跨域配置不生效
问题复现: 明明在拦截器里配置了跨域,就是不生效,使用PostMan等后端调试工具调试,均正常,Response中有Access-Control-Allow-Origin: *,这个Header,但是 ...
- IServiceBehavior, IOperationBehavior,IParameterInspector
1 public class MyOperationBehavior:Attribute, IOperationBehavior 2 { 3 public void AddBindingParamet ...
- 【四】AI Studio 项目详解【VisualDL工具、环境使用说明、脚本任务、(四)图形化任务、在线部署及预测】PARL
相关文章 [一]-环境配置+python入门教学 [二]-Parl基础命令 [三]-Notebook.&pdb.ipdb 调试 [四]-强化学习入门简介 [五]-Sarsa&Qlear ...
- Cheat Engine 官方教程汉化
CE修改器官方教程汉化版,区别于前款教程,官方教程中使用的是Tutorial64位程序,如下是经过翻译后的官方文档. 第一步:欢迎 当教程启动时,您应该会看到类似的东西,您只需在阅读帮助文本后单击&q ...
- 还没发布就来了?iPhone 15系列机型价格配置图曝光
明天凌晨1点,iPhone 15系列就将正式发布,不过在发布前夕,有网友根据此前的各种爆料,制作了一张有关新iPhone的各型号价格和配置的图片,虽然这并不是官方公布的图片,但是也或多或少包含了人们对 ...