问题标签 [fork-join]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
groovy - 使用 GPar 的 Fork/Join 示例
我在这里找到了 GPars 中 fork/join 的示例:Fork/Join
它可以工作并返回正确数量的文件,但不幸的是我不明白这一行:
究竟是如何工作count
的childrenResult
?
为什么将 a0
作为参数传递给sum()
?
java - scala.concurrent.forkjoin.ForkJoinPool 与 java.util.concurrent.ForkJoinPool
为什么 ForkJoinPool 是为 Scala 分叉的?
首选哪种实施方式和哪种情况?
scala - Scala 2.10 中的 Futures.awaitAll 替换
我需要生成一组 Futures 并等待它们全部完成,要么失败,要么成功。
最近的 Scala 2.10 不包含类似的东西,或者我确实错过了什么?
scala - 替换 ForkJoinPool 上的 setMaximumPoolSize
我注意到自从 Scala 2.9.* 以来,该setMaximumPoolSize
方法似乎已经消失了ForkJoinPool
,它看起来就像我想要的那样。大多数关于限制 Scala 并行集合中的并行性的讨论都围绕setParallelism
同一个类的方法(它也已经消失,但对我来说不是什么大问题),但在我的情况下,并行任务可以执行外部 IO,并且经常会阻塞在上面。然后ForkJoinPool
在这种情况下启动更多线程并有效地针对有问题的共享 IO 资源执行 DOS,这是不可取的。
有没有办法以某种方式限制池中的线程数?我并不真正关心 spawn-when-blocked-on-IO 行为,但我想要某种程度的并行性,因为我的 IO 任务是独立的并且不会相互干扰。
java - Java 7 的 fork/join 框架没有使用所有可用的 CPU 能力
我正在使用Java 的 fork-join 框架来处理 CPU 密集型计算。
我已经稍微调整了“顺序阈值”(用于确定是创建子任务还是完成工作),但令我失望的是,从单线程到 4+4 内核仅使整体性能翻了一番。该池确实报告了 8 个 CPU,当我手动设置 2、3、4、.. 时,我看到性能逐渐提高,但仍然达到单线程吞吐量的两倍左右。此外,该 Java 进程的 Linux 系统活动监视器在 50% 左右徘徊。
另一个非常可疑的事实是,当我启动多个 Java 进程时,集体吞吐量更加一致(几乎比单个线程快 4 倍)并且系统活动监视器显示更高的 CPU 使用率。
是否有可能在 Java、Linux 或 fork/join 框架中存在不允许完全 CPU 使用的限制?有什么建议或类似的经历吗?
注意。这是在具有 4 个内核和 4 个超线程内核的 Intel 3770 CPU 上,在 Linux Mint 机器上运行 Oracle Java 7r13。
java - 在这种情况下,可以使 ForkJoinPool 比 ExecutorService 更快吗?
只要我在池中给 ForkJoinPool一个额外的线程,它的执行速度就与 ExecutorService 一样快。以下是使用的三个类:Main、RunnableTask 和 ForkJoinTask。在 16 核盒子上运行,程序每次输出如下: Executor Time: 5002 ForkJoin Time: 5002
主类:
可运行类:
递归任务类:
java - 在 Java 中使用 Executor 编写文件
我有一个List<Map<String,String>>
ie;地图列表。每个 Map 都有File Name
asKey
和File Content
as Value
。
我在上面的列表中有超过 250 万张地图。我的要求是遍历此列表并在读取每个 Map 键和值的输出文件夹中创建文件。所以最后我将拥有 250 万个文件。需要4个多小时。然后我停止程序。如果我为整个 250 万条记录运行该程序,我不知道确切的时间。
我需要使用多线程对此进行优化。
如何使用 Java 优化它Executors/ Fork/ Join
(我有Java 7
)
java - ForkJoinPool 中的守护线程
根据 Java Doc 7:
因为 ForkJoinPool 在守护模式下使用线程,所以通常不需要在程序退出时显式关闭这样的池
没有其他优势吗?守护线程是否仅与“直到系统处于活动状态”中的正常线程不同?这只意味着我不必关心关闭 ForkJoinPool 吗?
有人可以清理我吗?
java - Java 7 fork/join 是否保证在单独的 CPU 中执行线程
最近,我开始了解 Java 7 fork/join 框架——我了解到它可能对分治之类的问题很有用。
我的问题是,框架是否保证在不同的 CPU 上执行线程?或者是否可以指示我使用并发包类创建的线程在我的服务器中可用的单独 CPU 上运行?
java - How many thread worker are in a ForkJoinPool?
How can I know how many thread does a ForkJoinPool
have? Let's say the ThreadForkJoinPool
implementation.
I have a dual core.
Second quick question: Does synchronization (locks) work also with parallelism? Thanks in advance.