【发布时间】:2014-09-15 05:20:07
【问题描述】:
抱歉,如果这里不适合回答这些问题,但我需要一些基本帮助。
我有一个名为Differential 的类,它有一个成员变量mValues (List>)。我想要做的是遍历所有值并将它们相互比较。这意味着对于五个值,我要进行 10 次比较。但是,这将用于至少 20,000 个列表。我想做三个计算,我想知道我应该如何处理这个问题。
我目前的想法来自this multi-threading example
我在想我会使用 completionService 来遍历多线程中的值。然后每个线程将处理多个计算并返回它们。这看起来合适吗?有没有一种我没有意识到的快速执行此操作的方法?
【问题讨论】:
-
如果您被允许使用 Java 8,那么可能值得看看新的 lambda 表达式
-
我该怎么做呢?我可以使用 java 8
-
您有执行所有比较吗?意思是,可以通过执行子集比较得出您想要达到的最终点吗?
-
为了能够使用 lambda 和流操作的并行性,第一步是以可以并行化单个步骤的方式来制定问题。然后每个步骤都必须作为一些 map 或 reduce 任务来实现。但要做到这一点,至少应该对 java 中的 lambda 和流有一些基本经验
-
您的问题非常广泛——基本上是“并发如何工作?” - 你没有告诉我们你如何或为什么要比较列表中的值。我认为你正在做的一个具体的例子(在代码中)是有序的。
标签: java multithreading large-data