Executors框架——5种常用的线程池介绍及区别

2023-11-02

1. CachedThreadPool线程池(可向下转型为ThreadPoolExecutor)

1.1 线程池核心线程数是0,说明线程空闲时,会被自动回收

1.2 任务队列只能有一个任务,而且最大线程数是整数最大值。所以有任务就会创建线程处理,这就要求任务执行时间要短,不然会创建很多线程

 

2. FixedThreadPool线程池(可向下转型为ThreadPoolExecutor)

2.1 核心线程数和最大线程数相等,不存在线程回收

 

3. SingleThreadExecutor线程池

3.1 只能创建一个线程的SingleThreadExecutor线程池和线程的区别

3.2 线程池中唯一的线程发生异常结束,线程池会再创建一个线程

 

4. WorkStealingPool线程池(可向下转型为ForkJoinPool)

4.1 本质是ForkJoinPool

4.2 最大的特点之一:线程可以悬挂当前任务,从任务队列执行子任务

4.3 最大的特点之二:从自己队列按LIFO后入先出方式拿取任务,然后会从其它线程的工作队列按FIFO先入先出方式"窃取"任务

 

5. ScheduleThreadPoolExecutor线程池

5.1 任务执行时间很长时,不能保证周期性执行

5.2 不支持回调

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Executors框架——5种常用的线程池介绍及区别 的相关文章

  • Eclipse 中的 Java 简单电子邮件程序

    我想制作一个简单的程序 您可以从其中发送电子邮件命令行 我找到了这个教程 http www tutorialspoint com java java sending email htm http www tutorialspoint com
  • 如何更改 JComboBox 下拉列表的宽度?

    我有一个可编辑的JComboBox其中包含单个字母值的列表 因此 组合框非常小 每个字母都有特殊的含义 对于很少使用的字母 有时用户并不清楚 因此我创建了一个自定义ListCellRenderer显示下拉列表中每个字母的含义 不幸的是 这个
  • TestNG 启动期间发生内部错误

    我创建了一个 TestNG 类 FirstTest java 当我将测试用例作为 TestNG Test 运行时 出现以下错误 期间发生内部错误 启动 FirstTest java lang NullPointerException Ecl
  • 在游戏框架中编写功能测试的正确方法

    在为基于 play1 2 4 的 web 应用程序编写功能测试时 我对如何正确编码感到有点困惑 困惑在于所涉及的事务边界 我在某处读到每个测试都有自己的事务 在我的应用程序中 用户可以登录并向购物车添加一些商品 然后他可以提供一个地址 以便
  • 逐行读取 JTextPane

    有没有办法读取a的内容JTextPane逐行 很像 BufferedReader 吗 Element root textPane getDocument getDefaultRootElement 获得根元素后 您可以检查存在多少个子元素
  • Spring boot 404错误自定义错误响应ReST

    我正在使用 Spring boot 来托管 REST API 即使浏览器正在访问 URL 以及自定义数据结构 我也希望始终发送 JSON 响应 而不是使用标准错误响应 我可以使用 ControllerAdvice 和 ExceptionHa
  • 平衡括号问题的优化解

    给定一个仅包含字符的字符串 and 判断输入字符串是否有效 输入字符串在以下情况下有效 左括号必须由相同类型的括号封闭 左括号必须按正确的顺序关闭 请注意 空字符串也被视为有效 示例1 Input Output true Example 2
  • ORMLite - join where 子句中的括号

    我想使用连接三个表QueryBuilder join and QueryBuilder joinor但我想在 where 子句中添加括号 如下所示 WHERE first table where AND second table where
  • 使用用户名进行 Java LDAP 身份验证

    好吧 这让我发疯 我正在尝试使用 Java 创建 LDAP 身份验证 如果我在 SECURITY PRINCIPAL 中使用我的名字和姓氏 一切都很好 这是我的代码 try Hashtable
  • 带有 @Scheduled Spring 注释的方法的切入点

    我想要一个带有注释的方法的 AspectJ 切入点 Scheduled 尝试了不同的方法但没有任何效果 1 Pointcut execution org springframework scheduling annotation Sched
  • 使用 Thymeleaf 时我们应该删除 HTML 属性吗?

    我正在研究 Thymeleaf 发现几乎所有示例中都有 Thymeleaf 的标签值以及标准 HTML 值 例如 这些
  • Android Studio 找不到 com.android.support:support-v4:19.1.0

    我已将一个项目导入Android Studio但我收到错误 找不到 com android support support v4 19 1 0 我在哪里可以找到这个文件 我已经使用导入了项目Gradle 我有Android Studio v
  • Android 上的自定义视图和窗口属性

    我想要做的是在我的应用程序顶部添加一个视图 该视图类似于过滤器视图 我想操纵屏幕的颜色 并且我还希望能够同时更改屏幕的亮度时间 这两件事似乎是分开起作用的 但不能一起起作用 这是我的代码 添加视图 colourView new Layer
  • 在 JSF 自定义验证器中区分 ajax 请求和完整请求

    我的验证器需要知道它是完整请求还是 ajax 请求 在我当前的解决方案中 我检查 http 请求标头X Requested With元素 public void validate FacesContext context UICompone
  • 不想保留一对一的实体

    假设我有两节课Employee and Department In Employee我已经写了 OneToOne fetch FetchType EAGER cascade CascadeType ALL JoinColumn name d
  • 使用泛型进行选择排序

    我对整数进行了选择排序并且它正在工作 当我尝试修改程序以使用泛型时 编译器会抱怨 我不知道如何修复它 如果有人能提出一些建议和建设性意见 我将不胜感激 这是代码 public class SelelctionSort public stat
  • JSF“总”变量类似于 JSTL 中的 c:set

    我不喜欢 JSF 但我需要用它来解决这个问题 我正在 纯 JSF 中工作 所以这就是我基本上需要的 但我不知道如何用 JSF 来实现它
  • SecurityContextHolder.getContext().getAuthentication() 返回 null

    我想使用以下代码手动绕过 spring Security 的用户 User localeUser new User UsernamePasswordAuthenticationToken auth new UsernamePasswordA
  • 使用 OpenNLP 获取句子的解析树。陷入困境。

    OpenNLP 是一个关于自然语言处理的 Apache 项目 NLP 程序的目标之一是解析一个句子 并给出其语法结构的树 例如 天空是蓝色的 这句话 可能会被解析为 S NP VP The sky is blue where S是句子 NP
  • 使用 Spring Batch 将文件中的日期解析为 LocalDateTime

    我正在尝试使用 Spring Batch 读取包含日期的 CSV 文件 但在将日期解析为LocalDateTime Object 字段 日期 上的对象 目标 中的字段错误 拒绝值 2017 07 20 04 15 25 0 代码 typeM

随机推荐

  • unity 计时器

    unity 计数器 计时器就是在游戏界面的时间 可以是一个正计时 也可以是倒计时 现在简单分享一下简单的计时代码 private void Update totalTime Time deltaTime if totalTime lt 0
  • SpringCloud的搭建

    SpringCloud的搭建 源码 Eureka的创建步骤 最终版为2021 5 23版本 每次提交对应下面的一个步骤 1 Eureka保证AP 2 Eureka的使用 Ribbon的使用步骤 最终版为2021 5 24版本 每次提交对应下
  • Hive SQL中的lateral view explode

    公众号后台回复 图书 了解更多号主新书内容 作者 胖里 来源 胖里的日常 标题中直接写lateral view explode是我鲁莽了 毕竟这俩不是法定cp 也并不是不能分开各自生活 其中explode可以放在select从句中单独使用
  • android ScrollView 嵌套RecyclerView 解决滑动冲突

    为了解决滑动事件的冲突需要重写ScrollView Copyright 2014 Soichiro Kashima Licensed under the Apache License Version 2 0 the License you
  • 【Linux

    目录 一 判断文件是否存在 1 1 判断目录是否存在 1 2 判断文件是否存在 1 3 其他文件类型判断 二 字符串截取 去掉文件后缀 2 1 获取文件后缀 2 2 获取文件前缀 在Linux编程过程中 设计到对文件的处理时常常需要判断某个
  • 远程调试运行在Resin上面的Web应用程序

    为什么80 的码农都做不了架构师 gt gt gt 有时候 我们不得不放弃在本地调试我们的程序 把我们的程序先布署到服务器 然后把调试信息都记在日志中 用眼睛瞅日志来调试程序 不是用这种方式不行 只是效率太低 本来写程序是一件开心的事情 却
  • UE4数字孪生项目制作规范

    UE数字孪生项目制作规范 说明 协同 规范 说明 UnrealEngine项目 打包输出Window应用 鼠标操作 键盘快捷键操作 协同 内部开发的可以自己内网搭建svn服务器协同开发 如有外部人员参与项目开发 则项目协同可使用svnbuc
  • Spring Boot:jar中没有主清单属性

    D hu git spring xxx xxx target gt java jar spring cloud eureka 0 0 1 SNAPS HOT jar spring xxx xxx 0 0 1 SNAPSHOT jar中没有主
  • 数据库的背景知识及基本概念

    数据库的背景知识及基本概念 随着互联网技术的高速发展 大量的数据正在不断产生 伴随而来的是如何安全有效的存储 检索 管理他们 使用数据库可以高效且条理分明地存储数据 它使人们能够更加迅速和方便管理数据 主要体现一下几个方面 可以结构化存储大
  • 奥迪A6 C5空调制冷效果差维修

    一台2003年出厂的一汽奥迪A6 C5 2 8L轿车 装备BBG发动机及双区自动空调 行驶约159000公里 该车空调制冷效果差 空调面板设定22度 用手感知出风口温度 凉 但不够凉 压缩机离合器正常吸合 皮带盘正常运行 连接空调歧管压力表
  • 从零读懂CAN总线(上)

    概要 上世纪八十年代以来 汽车ECU越来越多 如ABS 电控门窗 电子燃油喷射装置 如果仍然采用常规的点对点布线方式 即电线一段与开关相接 另一端与用电设备相通 将会导致车上电线数目的急剧增加 从而带来线束的冗余及维修成本的提高 这就对汽车
  • Gorm系列之1

    Gorm系列之1 特别指出 特别指出的是 该系列基础代码来自git上的开源项目7days golang 项目地址 https github com geektutu 7days golang 原项目作者 极客兔兔 个人主页 https ge
  • 网络面试题及答案

    1 标准网络线的颜色排列顺序 568B 橙白 橙 绿白 蓝 蓝白 绿 棕白 棕 568A 绿白 绿 橙白 蓝 蓝白 橙 棕白 棕 直通线一般都用 A线序或 B线序 交叉线一端是 568A 一端 是 568B 2 按照数据访问速度排序 硬盘
  • linux内存调试工具集

    除了GDB以外 linux还提供了很多的内存调试工具 注意 以下工具的使用之前 gcc需要使用 g编译出带符号的elf 1 addr2line 用于将可执行文件的虚拟内存地址或者动态库的偏移量转换成函数以及代码行 动态库的偏移量计算方式 将
  • 用python和计算机对话(计算机的语句)

    计算机中的的语句 编程其实就是一个把人类语言转换成计算机语言的过程 再知道每个字是什么意思后 就要把它连成一句话 这样它便有了意义 程序便是由这样一句一句的计算机语句组成的 那么计算机语句都有哪些呢 1 if else语句 if是如果的意思
  • 字节原来这么容易进,是面试官放水,还是公司实在是太缺人?

    本人211非科班 之前在字节和腾讯实习过 这次其实没抱着什么特别大的希望投递 没想到字节可以再给我一次机会 还是挺开心的 本来以为有个机会就不错啦 没想到能成功上岸 在这里要特别感谢帮我内推的同学 中间投递比较曲折 是他帮了我很多 非常负责
  • onlyoffice文档服务器加载慢,【onlyoffice中文指南】12-问题及排除

    作者 日期 雨中星辰 2018 12 20 故障排除 编辑器集成中最常见的问题及解决方法 下载失败 Download failed 下载失败 编辑器加载过程中将显示 下载失败 消息 该文档编辑服务不能上传文件进行编辑 检查document
  • Android自定义View完美实现指示器位置随进度变化的IndicateProgressView

    该文章同步发布在公众号 LinminTech 上 请在本文最后扫码关注 获取更多精彩Android开发文章 效果图 需求 在平时开发过程中 UI经常要求实现如上图所示的ProgressBar 但是Android系统自带的ProgressBa
  • 嵌入式系统学习(七)-bootloader修改实例

    从 github 中下载 Nanopi2 的 uboot 源码后 从源代码根目录中找到 u boot lds 文件 可以看到以下内容 以上片断可以分析出 整个 uboot 程序从 arch arm cpu slsiap s5p4418 st
  • Executors框架——5种常用的线程池介绍及区别

    1 CachedThreadPool线程池 可向下转型为ThreadPoolExecutor 1 1 线程池核心线程数是0 说明线程空闲时 会被自动回收 1 2 任务队列只能有一个任务 而且最大线程数是整数最大值 所以有任务就会创建线程处理