在流管道中放置parallel()调用是否重要?
例如,parallel()之前filter()
Stream.of(...)
.parallel()
.filter(...)
.forEach(...);
和parallel()后filter()
Stream.of(...)
.filter(...)
.parallel()
.forEach(...);
调用顺序parallel()会影响流吗?
回答
放在哪里都没有关系parallel()。在forEach调用终端操作(在您的情况下)之前,不会评估流。
来自 Javadoc:
返回并行的等效流。可能返回自身,因为流已经是并行的,或者因为底层流状态被修改为并行。这是一个中间操作。
顺序重要的唯一情况是,如果您还调用sequential,则以下情况适用:
最近的顺序或并行模式设置适用于整个流管道的执行。
有关更多信息,请参阅相关的 Javadoc