Java 在流管道中的何处放置parallel()调用重要吗?

Java 在流管道中的何处放置parallel()调用重要吗?,java,parallel-processing,java-stream,Java,Parallel Processing,Java Stream,例如,parallel()在filter()之前 和parallel()在filter()之后 调用parallel()的顺序是否会影响流?将parallel()放置在何处并不重要。在调用终端操作(在您的例子中是forEach)之前,不会对流进行求值 从Javadoc: 返回并行的等效流。可能会返回自身,这可能是因为流已经是并行的,也可能是因为底层流状态被修改为并行的。 这是一个中间操作 订单唯一重要的情况是,如果您同时调用sequential,则以下情况适用: 最新的顺序或并行模式设置应用于整

例如,
parallel()
filter()之前

parallel()
filter()之后


调用
parallel()
的顺序是否会影响流?

parallel()
放置在何处并不重要。在调用终端操作(在您的例子中是
forEach
)之前,不会对流进行求值

从Javadoc:

返回并行的等效流。可能会返回自身,这可能是因为流已经是并行的,也可能是因为底层流状态被修改为并行的。 这是一个中间操作

订单唯一重要的情况是,如果您同时调用
sequential
,则以下情况适用:

最新的顺序或并行模式设置应用于整个流管道的执行

有关更多信息,请参阅

Stream.of(...)
      .parallel()
      .filter(...)
      .forEach(...);
Stream.of(...)
      .filter(...)
      .parallel()
      .forEach(...);