并行处理Java集合

并行处理Java集合,java,Java,并行处理Java对象集合的最佳方法是什么?我希望有一个包含100个线程的线程池,每个线程在一个单独的集合对象上工作,并对其执行一些操作。有什么想法吗?Java8是目标版本 使用并行流 yourCollection .parallelStream() .forEach(e -> doStuff(e)); 您可能还希望collect()之后收集结果。使用parallelStream yourCollection .parallelStream() .forEach(e -&g

并行处理Java对象集合的最佳方法是什么?我希望有一个包含100个线程的线程池,每个线程在一个单独的集合对象上工作,并对其执行一些操作。有什么想法吗?Java8是目标版本

使用
并行流

yourCollection
  .parallelStream()
  .forEach(e -> doStuff(e));

您可能还希望
collect()
之后收集结果。

使用
parallelStream

yourCollection
  .parallelStream()
  .forEach(e -> doStuff(e));

您可能还想
collect()
之后收集结果。

我不确定您是否应该在这里有一个线程池。让JVM和并行流根据可用的内核数量来计算。当Java允许您配置parallelStream使用的线程池时,您将能够同时完成这两项工作。现在,你必须接受你所得到的。很多时候这已经足够好了,但是如果你正在处理很多慢的操作,你可能想自己使用@c12的原始版本来完成(Java我不确定您是否应该在这里设置线程池。让JVM和并行流根据可用的内核数量来确定。它会比您更好地进行优化。当Java允许您配置并行流使用的线程池时,您将能够同时做到这两个方面。现在,您必须接受您需要的很多时候这已经足够好了,但是如果你正在处理很多慢的操作,你可能想自己用@c12的原版(Java)来做