我在互聯網上看到了一堆例子,為了使用流 API 來做并行的事情,只需.parallelStream()像這樣調用方法:mySet .parallelStream() ... // do my fancy stuff and collect但在其他情況下,我已經看到在線程池提交中使用了并行流,如下所示:ForkJoinPool.commonPool().submit(() -> { mySet .parallelStream() ... // do my fancy stuff and collect})只是調用會parallelStream()執行多個并發線程中接下來發生的任何事情嗎?就像在一些預先配置的線程池中一樣。或者我是否必須創建我的線程然后使用并行流?
1 回答

哆啦的時光機
TA貢獻1779條經驗 獲得超6個贊
YesparallelStream并行運行。
通常,當有一個長時間運行的并行流時,您不想在 上運行它,commonPool因為所有其他并行流也在使用它。
順便說一句,這是一個實現細節,因為流沒有指定它們將用于并行處理的池,但是在當前實現下,您不應該使用ForkJoinPool.commonPool(),而是創建一個新池:
ForkJoinPool pool = new ForkJoinPool(2);
pool().submit(() -> {
mySet
.parallelStream()
... // do my fancy stuff and collect
})
添加回答
舉報
0/150
提交
取消