Java并发编程 - Executor框架详解

Java并发编程实战:深入探索线程池与Executor框架 线程池是一种基于池化思想管理线程的资源管理技术。它预先创建并维护一定数量的线程,当有任务到来时,直接从线程池中获取空闲线程执行任务,而不是每次都创建新线程。降低资源消耗:减少了线程的创建和销毁开销。提高响应速度:由于线程池中的线程已经预先创建,可以快速响应任务请求。提高系统吞吐量:通过复用线程,系统能够同时处理更多任务。Java的线程池与Executor框架为高效并发编程提供了强有力的支持。通过合理配置线程池参数、正确提交和处理任务,可以显著提升系统的性能和稳定性。 阅读详情

Executor框架(接口)负责在用户级别进行任务的调度和执行, 实现了任务调度和执行的分离.

Executor框架简介

Executor框架的两级调度模型

executor-workflow

在上层, Java程序通过将应用分解为若干个任务(task),
然后使用用户级的调度器(Executor框架)将task映射为固定数量的Java线程.

在底层, Java线程与操作系统的线程是一一对应的关系, 由操作系统调度给可用的CPU. 底层的调度不受上层的影响.

Executor框架工作流程

executor-workflow

主要包括3大组件:

  • 异步任务: Runnable或者Callable的实现类;
  • 异步任务的调度和执行(用户级别): Executor接口的实现类ThreadPoolExecutor和ScheduledThreadPoolExecutor;
  • 异步计算的结果: 接口Future和接口的实现类FutureTask.

组件间关系如下:

executo-inherent

ThreadPoolExecutor详解

ThreadPoolExecutor是Executor框架的核心, 是线程池的实现类, 负责异步进行任务的调度和执行, 共有以下重要的配置参数:

  • corePoolSize: 核心线程池大小
  • maximumPoolSize: 最大线程池大小;
  • BlockingQueue: 用于保存任务的工作队列;

通过工具类Executors, 可以快速创建3种预定义参数的ThreadPoolExecutor, 以下将分别进行分析.

FixedThreadPool详解

被称为可重用固定线程数的线程池, 实际上就是ThreadPoolExecutor将corePoolSize和maximumPoolSize设置为相同大小,
同时使用了无界队列的情况.

SingleThreadExecutor详解

同一时间只有一个线程在执行任务, 为了确保任务的顺序执行.
实际上就是FixedThreadPool, corePoolSize和maximumPoolSize设置为1的特殊情况.

CachedThreadPool详解

corePoolSize设置为0, 在运行过程中会根据需要来创建线程执行任务, 使用没有容量的SynchronousQueue作为线程池的工作队列.
但是maximumPool是无界的, 所以适合于应对大量短任务的情况, 对于运行完任务的线程, 会有一个等待时间,
默认超过60秒没有新任务到来则自动销毁, 所以长时间保持空闲的CachedThreadPool不会使用任何资源.

未完待续

CCS20实战入门:第一个工程搭建示例 通过实际操作演示如何在ccs20中创建并配置首个开发项目,涵盖环境设置与基础调试步骤,帮助新手快速上手ccs20集成开发环境,提升嵌入式开发效率。 阅读详情

相关推荐

gtsam官方文档: The new IMU Factor学习笔记

gtsam官方文档:The new IMU Factor 本文为gtsam imu预积分文档学习笔记,为gtsam基于切向量实现的imu预积分的理论基础。 导航状态 定义导航状态为 Xbn={Rbn,Pbn,Vbn}X^n_b=\{R^n_b,P^n_b,V^n_b\}Xbn​={Rbn​,Pbn​,Vbn​} 上角标n:导航(navigation)坐标系 下角标b:载体(body)坐标系 下文均省略上下标 矢量场与微分方程 对于导航问题我们用如下微分方程描述 X˙(t)=F(t,X)\dot X(t)

南柯一梦的博客 1609

【java并发】Executor框架详解

Java并发——Executor框架详解 一、Executor框架概念 我们知道线程池就是线程的集合,线程池集中管理线程,以实现线程的重用,降低资源消耗,提高响应速度等。线程用于执行异步任务,单个的线程既是工作单元也是执行机制,从JDK1.5开始,为了把工作单元与执行机制分离开,Executor框架诞生了,他是一个用于统一创建与运行的接口。Executor框架实现的就是线程池的功能。 二、Executor框架结构详解 2.1 Executor框架 (1)任务。也就是工作单元,包括被执行任务需要实现的接

九离的博客 1063

【Codex Sandbox 与审批机制:小白也能看懂的实用教程】

这篇教程介绍了Codex工具中的沙盒(Sandbox)和审批(Approvals)机制,帮助用户安全高效地使用Codex协作。沙盒限制Codex访问范围,审批机制则控制敏感操作权限。文章详细讲解了五种常见模式:最安全的安全只读浏览、只读非交互、仓库内编辑、Auto预设和不推荐的YOLO模式。还提供了新手使用路径建议、配置示例和实战场景范式,包括如何测试沙盒行为、不同系统下的实现方式以及常见问题解答。最后附上速查清单,帮助用户快速选择合适的权限组合。

zsr154278963的博客 6710

Spring响应式高并发编程

reactor框架

2301_78960337的博客 1169

Sentaurus TCAD学习——Scheme编程语言

sentaurus scheme语言学习记录

摸摸小熊猫的博客 965

Outlook邮件备份全攻略:从导出到导入的完整流程(附常见问题解决)

本文提供了一份详尽的Outlook邮件备份全攻略,涵盖从导出到导入的完整流程。重点解析了经典桌面版Outlook的.pst文件备份方法、进阶的智能筛选备份策略,以及如何通过导入恢复和工具验证确保备份可用。同时,文章还介绍了构建自动化备份体系与异地容灾的最佳实践,并附有常见问题解决方案,帮助用户建立可靠的邮件数据安全防线。

weixin_29248611的博客 894

Executor框架简介

核心接口Executor和ExecutorService接口。在Executor框架中有两个核心类实现了ExecutorService接口,ThreadPoolExecutor和ScheduledThreadPoolExecutor。线程被一对一映射为服务所在操作系统线程,启动时会创建一个操作系统线程;:核心接口:Runnable、Callable接口和接口实现类;Executor框架包含的核心接口和主要的实现类。:接口Future和实现类FutureTask;

wuyundong123的博客 614

linux v3h平台开发系列详解(GMSL摄像头篇):1.12 解串器MAX96712输出4 lane 变 2 lane的配置

本文详细介绍了在Linux v3h平台上,针对Max96712解串器进行MIPI 4lane到2lane配置。内容包括串行器解串器介绍、链路框架、硬件连接、以及软件寄存器如何配值和一些问题的解决方法。

xian18809311584的博客 1094

Java 并发编程 11 - 异步执行框架 Executor

下面是这些类和接口的简介。Executor是一个接口,它是 Executor 框架的基础,它将任务的提交与任务的执行分离开来。是线程池的核心实现类,用来执行被提交的任务。是一个实现类,可以在给定的延迟后运行命令,或者定期执行命令。ScheduledThreadPoolExecutor 比 Timer 更灵活,功能更强大。Future接口和实现 Future 接口的FutureTask类,代表异步计算的结果。Runnable接口和Callable。

justlpf的专栏 966

86、高斯过程:学习、应用与自动相关性确定

本文介绍了高斯过程回归的基本原理及其在实际应用中的关键技术,重点探讨了通过最大化对数似然函数来学习模型超参数的方法,并详细阐述了自动相关性确定(ARD)技术如何用于评估输入变量的重要性。文章涵盖了从协方差函数定义、梯度计算到优化算法的应用流程,并通过流程图和表格形式总结了核心步骤与公式。此外,还讨论了贝叶斯处理方式及异方差问题的建模策略,展示了高斯过程在复杂数据建模中的灵活性与强大能力。

android的专栏 114

20、微电网系统的系统框架、建模与控制架构解析

本文详细解析了微电网系统的系统框架、建模方法以及控制架构。文章首先介绍了在系统的系统(SoS)框架下,微电网如何通过微控制器(MC)和微电网中央控制器(MGCC)协调运行,并支持并网与孤岛模式下的高效能量管理。随后,针对微电网的关键组件,包括微涡轮机、光伏太阳能电池和风力涡轮机,提供了详细的数学建模分析。最后,探讨了微电网的控制架构设计,涵盖分层控制和共识控制策略,以实现系统的高效、稳定运行,满足日益增长的能源需求与市场要求。

elastic6hunter的博客 206

Executor 线程池框架详解

一、什么是Executor框架? 我们知道线程池就是线程的集合,线程池集中管理线程,以实现线程的重用,降低资源消耗,提高响应速度等。线程用于执行异步任务,单个的线程既是工作单元也是执行机制,从JDK1.5开始,为了把工作单元与执行机制分离开,Executor框架诞生了,他是一个用于统一创建与运行的接口。Executor框架实现的就是线程池的功能。 对比 ...

GSON的博客 769

NXOpenC#-通用NX对象操作Tag,Handle,TaggedObject介绍

NXOpenC#-通用NX对象操作Tag,Handle,TaggedObject介绍

阿飞2018 1186

Java并发编程框架之Executor 框架

Java 并发编程框架是用于简化并发程序开发的一系列工具和库,它们提供了高层次的抽象来管理线程、同步机制和其他与并发相关的资源。随着Java语言的发展,这些框架不断进化,为开发者提供更加高效且易于使用的API。

物联网工程专业 - 软硬兼修 980

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Java并发编程新纪元:探索Executor线程池框架

在Java并发编程领域,线程的创建与管理至关重要。传统通过new Thread()的方式在性能优化、资源高效利用及系统扩展性方面存在明显局限。鉴于此,本文将介绍Executor线程池框架,这一相较于传统线程创建方式更为优越的并发编程工具。Executor线程池框架通过复用线程、智能管理资源及灵活配置,显著提升了系统性能、优化了资源利用率,并增强了系统的可扩展性。

Rye的博客 2649

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Java并发编程——Executor框架

今天看到《Java并发编程实战》第六章的时候,书中讲了利用Executor框架来实现多线程,平时Executor用得不多,今天顺带学习了一下,写出来总结总结。 引入Executor框架的原因 两种多线程执行任务的策略: 1.串行执行,即每次线程运行完才会运行下一个线程。这种方法是线程安全的,但是效率低,吞吐量小 2.为每个任务开辟一个线程,例如为每个请求服务器的连接建立一个线程,这种方法开...

qq_39479426的博客 366

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Java并发编程 Executor框架

Java并发编程 Executor框架 1. 在线程中执行任务 在理想情况下,各个任务之间是相互独立的:任务并不依赖于其他任务的状态、结果或者边界效应,独立性有助于实现并发,因为如果存在足够多的处理资源,那么这些独立的任务都可以并行执行。为了在调度与负载均衡等过程中实现更高的灵活性,每项任务还应该表示应用程序的一小部分处理能力。 2. 串行的执行任务 在应用程序中可以通过多种策略来调度任务,而其中一些策略能够更好地利用潜在的并发性。最简单的策略就是在单个线程中串行地执行各项任务。如下: public cla

liam12138的博客 222

Java 并发编程 Executor 框架

Excutor 框架 1. 两级调度模型 在 HotSpot VM 的线程模型中,Java 线程被一对一映射为本地操作系统线程。在上层,Java 多线程程序通常应用分解成若干个任务,然后使用用户级的调度器(Executor)将这些任务映射为固定数量的线程;在底层,操作系统内核将这些线程映射到硬件处理器。这种两级调度模型的示意图如图所示: 从图中可以看出,应用程序通过 Executor 框架控制上层调度,下层的调度则由操作系统内核控制 2. 框架结构 Ex..

低吟不作语的博客 344

java并发编程--Executor框架

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Ma...

qq_33349365的博客 175

Java并发编程(九)《Executor框架》

Java并发编程九Executor框架 1 Executor框架简介 11 Executor框架的两级调度模型 111 两级调度模型图 112 解释 12 Executor框架的成员 121 任务接口Runnable或者Callable 122 任务的执行线程池 123 异步计算的结果返回Future和FutureTask 13 Executor框架的类与接口UML 14 Executor框架的的使

lvmama_tujp的博客 905

java executor_Java并发编程 - Executor框架

Executor框架分离了任务的创建和执行。JAVA SE5的java.util.concurrent包中的执行器(Executor)管理Thread对象,从而简化了并发编程。Executor引入了一些功能类来管理和使用线程Thread,其中包括线程池,Executor,Executors,ExecutorService,CompletionService,Future,Callable等.1.E...

weixin_39535557的博客 86

Java并发编程学习10-任务执行与Executor框架

本篇重点讲解任务执行和Executor框架的基础知识

Huazie 1348

主题:java并发编程-Executor框架

http://www.iteye.com/topic/366591

CWH615的博客 440

【转】java并发编程-Executor框架

转载自 http://www.iteye.com/topic/366591   Executor框架是指java 5中引入的一系列并发库中与executor相关的一些功能类,其中包括线程池,Executor,Executors,ExecutorService,CompletionService,Future,Callable等。他们的关系为:   并发编程的一种编程方式是把任务拆分为...

topMan'blog 159

java并发编程-Executor框架

Executor框架是指java 5中引入的一系列并发库中与executor相关的一些功能类,其中包括线程池,Executor,Executors,ExecutorService,CompletionService,Future,Callable等。他们的关系为: 并发编程的一种编程方式是把任务拆分为一些列的小任务,即Runnable,然后在提交给一个Executor执行,Executo

Jmark 797

java框架_Java并发编程 - Executor框架

Executor框架分离了任务的创建和执行。JAVA SE5的java.util.concurrent包中的执行器(Executor)管理Thread对象,从而简化了并发编程。Executor引入了一些功能类来管理和使用线程Thread,其中包括线程池,Executor,Executors,ExecutorService,CompletionService,Future,Callable等.1.E...

weixin_39908462的博客 156
上一篇: Java - 日志收集与处理
下一篇: Java并发编程 - 线程池
congyh
博客等级 码龄15年 43粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值