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

相关文章
|
15天前
|
Java API Apache
Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
【10月更文挑战第29天】Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
71 5
|
2月前
|
Java Linux
java基础(3)安装好JDK后使用javac.exe编译java文件、java.exe运行编译好的类
本文介绍了如何在安装JDK后使用`javac.exe`编译Java文件,以及使用`java.exe`运行编译好的类文件。涵盖了JDK的安装、环境变量配置、编写Java程序、使用命令行编译和运行程序的步骤,并提供了解决中文乱码的方法。
60 2
|
1月前
|
缓存 Java Maven
java: 警告: 源发行版 11 需要目标发行版 11 无效的目标发行版: 11 jdk版本不符,项目jdk版本为其他版本
如何解决Java项目中因JDK版本不匹配导致的编译错误,包括修改`pom.xml`文件、调整项目结构、设置Maven和JDK版本,以及清理缓存和重启IDEA。
46 1
java: 警告: 源发行版 11 需要目标发行版 11 无效的目标发行版: 11 jdk版本不符,项目jdk版本为其他版本
|
23天前
|
设计模式 Java API
[Java]静态代理与动态代理(基于JDK1.8)
本文介绍了代理模式及其分类,包括静态代理和动态代理。静态代理分为面向接口和面向继承两种形式,分别通过手动创建代理类实现;动态代理则利用反射技术,在运行时动态创建代理对象,分为JDK动态代理和Cglib动态代理。文中通过具体代码示例详细讲解了各种代理模式的实现方式和应用场景。
20 0
[Java]静态代理与动态代理(基于JDK1.8)
|
1月前
|
Java Linux
java读取linux服务器下某文档的内容
java读取linux服务器下某文档的内容
36 3
java读取linux服务器下某文档的内容
|
1月前
|
Java
Java基础之 JDK8 HashMap 源码分析(中间写出与JDK7的区别)
这篇文章详细分析了Java中HashMap的源码,包括JDK8与JDK7的区别、构造函数、put和get方法的实现,以及位运算法的应用,并讨论了JDK8中的优化,如链表转红黑树的阈值和扩容机制。
23 1
|
1月前
|
SQL 分布式计算 Java
Hadoop-11-MapReduce JOIN 操作的Java实现 Driver Mapper Reducer具体实现逻辑 模拟SQL进行联表操作
Hadoop-11-MapReduce JOIN 操作的Java实现 Driver Mapper Reducer具体实现逻辑 模拟SQL进行联表操作
31 3
|
2月前
|
容器
jdk8新特性-详情查看文档
jdk8新特性-详情查看文档
45 3
|
2月前
|
Oracle Java 关系型数据库
Linux下JDK环境的配置及 bash: /usr/local/java/bin/java: cannot execute binary file: exec format error问题的解决
如果遇到"exec format error"问题,文章建议先检查Linux操作系统是32位还是64位,并确保安装了与系统匹配的JDK版本。如果系统是64位的,但出现了错误,可能是因为下载了错误的JDK版本。文章提供了一个链接,指向Oracle官网上的JDK 17 Linux版本下载页面,并附有截图说明。
Linux下JDK环境的配置及 bash: /usr/local/java/bin/java: cannot execute binary file: exec format error问题的解决
|
2月前
|
Java API 开发者
【Java模块化新飞跃】JDK 22模块化增强:构建更灵活、更可维护的应用架构!
【9月更文挑战第9天】JDK 22的模块化增强为开发者构建更灵活、更可维护的应用架构提供了强有力的支持。通过模块化设计、精细的依赖管理和丰富的工具支持,开发者可以更加高效地开发和管理应用,提高应用的性能和可维护性。
86 10