Java 中的并行编程10 Sept 2024 | 5 分钟阅读 在本文中,我们将学习一个称为并发编程的主题。在本文中,我们将学习为什么要在 Java 中使用并发编程以及在哪里使用它。这将帮助我们理解并发编程的重要性以及它与多线程的区别。 Java 中的并发编程是什么?并发编程是一个将复杂问题分解成更小、更简单的任务的过程,这些任务可以使用多个计算机资源同时执行。在并发编程的过程中,彼此独立的任务使用不同的计算机或计算机 CPU 中的多个核心并行执行。并发编程是公司处理重型和大型项目的基本必需品,因为它们需要维持其经济标准。由于并发编程,项目的速度得到了提高,错误的可能性也降低了。 并发编程与**多线程**有很大不同,因为它不要求任务遵循执行顺序。并发编程的每个任务都根据它们需要执行的功能进行设计。因此,它被称为**函数式并行**或**数据并行**。 为什么使用并发编程?随着多核 CPU 近期取得的进步,可以通过实现并发编程来最大限度地提高其效率。基本上,并发编程是指由于多处理资源(如处理核心)的可用性而导致的进程并行执行。并发编程被认为是一种比多线程更有效的方法。同时解决的并行任务被组合起来,为更大的问题提供最终解决方案。 Java 标准环境(**Java SE**)为程序员提供了“Fork/Join 框架”。Fork/Join 框架帮助程序员在其应用程序中轻松实现并发编程。但 Fork/Join 框架带来的复杂性在于程序员需要自己指定程序如何分解成任务。使用聚合操作,Java 运行时将为我们执行此分解。 Java SE 中的 Fork/Join 框架**java.util.concurrent** 是负责在 Java 中定义 Fork/Join 框架的包。java.util.concurrent 包包含各种类和接口,这些类和接口帮助我们在 Java 编程语言中使用并发编程。在并行处理中,处理部分针对同时使用多个处理器进行了优化。当涉及到多线程时,单个 CPU 的空闲时间是基于共享时间进行优化的。通过利用其抽象任务,将大型程序的划分任务包装在 ForkJoinTask 子类中。Fork/Join 子类的两个抽象任务是“**Recursive Task**”和“**RecursiveAction**”。 Fork/Join 框架使用基于分治规则的策略来实现并行处理。在此过程中,一个巨大的任务被分解成小任务,小任务又被分解成更简单的任务。这样,每个任务都被简化为小任务,直到它们足够小以至于可以顺序处理。 Fork/Join 框架的类
Fork/Join 框架的方法
让我们看一个示例程序,使用 Java 编程中的 Fork/Join 框架来实现并发编程概念。 实现并发编程的程序输出 The Initialized Random Values Are : 0.22471.72022.8929 3.4130 4.6356 5.01256.7087 7.1517 8.8097 9.4126 The Changed Values Are : 0.2247 1.7202 2.8929 3.4130 4.63565.0125 6.7087 7.15178.8097 9.4126 结论在本文中,我们涵盖了 Java 编程语言中的并发编程主题以及如何实现它。 下一主题如何生成 JVM 堆内存转储 |
在给定的整数数组 arr[](大小为 n)中,找到仅由素数组成的连续子数组的最大和。换句话说,不允许在选定的子数组中存在非素数。示例 1:输入:int a[] = {...
7 分钟阅读
这是 Google、Amazon、TCS、Accenture、Flipkart 等顶级 IT 公司面试中经常提出的问题。通过解决问题,人们希望检查应聘者的逻辑能力、批判性思维和解决问题的能力。因此,在本节中,我们将...
阅读 6 分钟
Java 提供了强大的文件操作库,使得将数据从一个文件复制到另一个文件的任务相对简单。此过程在各种场景下都至关重要,例如数据备份、日志文件处理等。在本文中,我们将指导...
5 分钟阅读
很多时候我们需要在 Java 中删除字符串中的重复字符。我们可以通过简单的 for 循环、排序、哈希和 IndexOf() 方法来删除字符串中的重复字符。因此,可能有一种以上的方法来删除重复项。通过使用...
阅读9分钟
给定一个整数 n,任务是找到一个长度为 n 的字符串,其中每个字符都出现奇数次。如果 n 是奇数,我们可以简单地使用一个字符,而如果 n 是偶数,我们可以调整一个字符以确保所有...
阅读 3 分钟
Java 中的内存管理 在 Java 中,内存管理是指对象的分配和去分配过程,称为内存管理。Java 会自动进行内存管理。Java 使用称为垃圾收集器的自动内存管理系统。因此,我们不需要实现内存管理逻辑...
14 分钟阅读
在数学中,排列和组合是两个重要的概念。排列是集合元素的各种排列。可以通过一次取一个元素、一次取一些元素和一次取所有元素来制作排列。组合是不同的选择...
5 分钟阅读
逆向工程是软件开发中的一个关键过程,它使开发人员能够深入了解现有代码库。它使他们能够理解复杂的系统、识别设计模式并提高可维护性。逆向工程的强大工具之一是 ArgoUML,一个流行的开源...
阅读 3 分钟
与 0 最接近的对和问题要求识别数组中提供最接近零的总和的数字。总绝对差值最小化在金融、物理和优化等领域中至关重要,同时处理优化任务。运行暴力法...
5 分钟阅读
在流行的面向对象编程语言 Java 中,有许多技术可用于将数据输出到控制台。经常用于此的两种方法是 print() 和 println()。即使它们看起来相同,但也有一些细微的差别可能会改变它们如何...
阅读 3 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India