gpt4 book ai didi

java - 简单地调用 parallelStream 是否可以并行运行任务?

转载 作者:搜寻专家 更新时间:2023-10-31 19:59:32 27 4
gpt4 key购买 nike

我在 Internet 上看到了很多示例,为了使用流 API 来执行并行操作,只需像这样调用 .parallelStream() 方法:

mySet
.parallelStream()
... // do my fancy stuff and collect

但在其他情况下,我看到在线程池提交中使用并行流,如下所示:

ForkJoinPool.commonPool().submit(() -> {
mySet
.parallelStream()
... // do my fancy stuff and collect
})

仅调用 parallelStream() 是否会执行多个并发线程中接下来发生的任何事情?就像在一些预先配置的线程池或其他东西中一样。或者我是否必须创建我的线程然后使用并行流?

最佳答案

是的 parallelStream 并行运行。

通常当有一个长时间并行运行的流时,您不希望在 commonPool 上运行它,因为所有 other 并行流也在使用它。

顺便说一句,这是一个实现细节,因为流没有指定它们将用于并行处理的池,但在当前实现下,您不应该使用 ForkJoinPool.commonPool(),而是创建一个新池:

ForkJoinPool pool = new ForkJoinPool(2);

pool().submit(() -> {
mySet
.parallelStream()
... // do my fancy stuff and collect
})

关于java - 简单地调用 parallelStream 是否可以并行运行任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52122002/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com