java8的JDK文档--Tutorial - Concurrency Lesson-Fork/Join

简介: java8的JDK文档--Tutorial - Concurrency Lesson-Fork/Join

java8的JDK文档--Tutorial - Concurrency Lesson-Fork/Join


发挥JDK并发框架的性能,需要使用多核处理器。下面是一些我认为比较关键的译文:

fork/join介绍

fork/join 框架是 ExecutorService 接口的实现,可帮助您利用多个处理器。它专为可以递归分解为较小部分的工作而设计。目标是使用所有可用的处理能力来增强应用程序的性能。

与任何 ExecutorService 实现一样,fork/join 框架将任务分发到线程池中的工作线程。fork/join 框架是不同的,因为它使用工作窃取(work-stealing)算法。没有事情要做的工作线程可以从仍在繁忙的其他线程中窃取任务。

fork/join 框架的中心是 ForkJoinPool 类,它是 AbstractExecutorService 类的扩展。ForkJoinPool实现了核心的工作窃取算法,可以执行ForkJoinTask进程。


标准实现

除了使用 fork/join 框架为要在多处理器系统上并发执行的任务实现自定义算法(例如上一节中的 ForkBlur.java示例)之外,Java SE 中还有一些通常有用的功能,这些功能已经使用 fork/join 框架实现。Java SE 8 中引入的一个这样的实现被 java.util.Arrays 类用于其 parallelSort() 方法。这些方法类似于 sort(),但通过 fork/join 框架利用并发性。在多处理器系统上运行时,大型阵列的并行排序比顺序排序更快。但是,这些方法究竟如何利用 fork/join 框架超出了 Java 教程的范围。有关此信息,请参阅 Java API 文档。

fork/join 框架的另一个实现由 java.util.streams 包中的方法使用,该包是 Java SE 8 版本中计划的 Lambda 项目的一部分。有关更多信息,请参阅 Lambda 表达式部分。


原文如下:

image.png

image.png


引用自:

https://docs.oracle.com/javase/tutorial/essential/concurrency/forkjoin.html

目录
打赏
0
0
0
0
33
分享
相关文章
|
3月前
|
Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
【10月更文挑战第29天】Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
211 5
探索Java动态代理的奥秘:JDK vs CGLIB
动态代理是一种在 运行时动态生成代理类的技术,无需手动编写代理类代码。它通过拦截目标方法的调用,实现对核心逻辑的 无侵入式增强(如日志、事务、权限控制等)。
44 0
探索Java动态代理的奥秘:JDK vs CGLIB
Java中的Fork/Join框架详解
Fork/Join框架是Java并行计算的强大工具,尤其适用于需要将任务分解为子任务的场景。通过正确使用Fork/Join框架,可以显著提升应用程序的性能和响应速度。在实际应用中,应结合具体需求选择合适的任务拆分策略,以最大化并行计算的效率。
54 23
基于Java+SpringBoot+Vue实现的车辆充电桩系统设计与实现(系统源码+文档+部署讲解等)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
60 6
深入理解 Java JDK —— 让我们从基础到进阶
JDK(Java Development Kit)是 Java 开发的核心工具包,包含编译、运行和调试 Java 程序所需的所有工具和库。它主要由 JVM(Java 虚拟机)、JRE(Java 运行时环境)和 Java 核心类库组成。JVM 是跨平台运行的基础,负责字节码的加载、执行和内存管理;JRE 提供运行 Java 应用的环境;核心类库则提供了丰富的 API 支持。通过编写、编译和运行一个简单的 Java 程序,可以深入理解 JDK 的工作原理。此外,JDK 还提供了 JIT 编译、垃圾回收优化和并发工具包等高级功能,帮助开发者提高程序性能和稳定性。
118 10
|
2月前
|
jdk8新特性-详情查看文档
jdk8新特性-详情查看文档
68 7
|
3月前
|
深入理解Java生态:JDK与JVM的区分与协作
Java作为一种广泛使用的编程语言,其生态中有两个核心组件:JDK(Java Development Kit)和JVM(Java Virtual Machine)。本文将深入探讨这两个组件的区别、联系以及它们在Java开发和运行中的作用。
184 1
开发 Java 程序一定要安装 JDK 吗
开发Java程序通常需要安装JDK(Java Development Kit),因为它包含了编译、运行和调试Java程序所需的各种工具和环境。不过,某些集成开发环境(IDE)可能内置了JDK,或可使用在线Java编辑器,无需单独安装。
143 2
java: 警告: 源发行版 11 需要目标发行版 11 无效的目标发行版: 11 jdk版本不符,项目jdk版本为其他版本
如何解决Java项目中因JDK版本不匹配导致的编译错误,包括修改`pom.xml`文件、调整项目结构、设置Maven和JDK版本,以及清理缓存和重启IDEA。
109 1
java: 警告: 源发行版 11 需要目标发行版 11 无效的目标发行版: 11 jdk版本不符,项目jdk版本为其他版本
[Java]代理模式
本文介绍了代理模式及其分类,包括静态代理和动态代理。静态代理分为面向接口和面向继承两种形式,分别通过手动创建代理类实现;动态代理则利用反射技术,在运行时动态创建代理对象,分为JDK动态代理和Cglib动态代理。文中通过具体代码示例详细讲解了各种代理模式的实现方式和应用场景。
78 0
[Java]代理模式

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等