Parallel processing 如何从Java 8'中获益;什么是平行流?

Parallel processing 如何从Java 8'中获益;什么是平行流?,parallel-processing,java-8,java-stream,Parallel Processing,Java 8,Java Stream,我在[]上问了一个关于使用Java8进行动态过滤的问题,StuartMarks回答得非常好,并给出了一些示例代码以在以下位置进行测试: 因为我是Java 8新手,所以我想知道以下几行代码是否会使程序在有大量数据要处理的多核工作站上运行得更快,至少在理论上是这样的: // widgetList.stream().filter(compositePredicate).forEach(System.out::println); widgetList.parallelStream().filt

我在[]上问了一个关于使用Java8进行动态过滤的问题,StuartMarks回答得非常好,并给出了一些示例代码以在以下位置进行测试:

因为我是Java 8新手,所以我想知道以下几行代码是否会使程序在有大量数据要处理的多核工作站上运行得更快,至少在理论上是这样的:

//  widgetList.stream().filter(compositePredicate).forEach(System.out::println);
    widgetList.parallelStream().filter(compositePredicate).forEach(System.out::println);

//  compositeCriteria.apply(widgetList.stream()).forEach(System.out::println);
    compositeCriteria.apply(widgetList.parallelStream()).forEach(System.out::println);

将“widgetList.stream()”与“widgetList.parallelStream()”关联是否会加快进程?

最好的方法是测试它。但是,请注意:

  • 系统。我们的.println
    是一种同步方法,因此终端操作基本上是顺序的
  • 因此,只有过滤才能从并行化中受益
  • 对于相当大的列表或计算密集型过滤操作,并行流可能是一种优势