回答編集履歴
1
日本語の誤りを訂正
answer
CHANGED
@@ -19,7 +19,7 @@
|
|
19
19
|
|
20
20
|
`(1..1000).asSequence().asStream().parallel().forEach(...)`
|
21
21
|
|
22
|
-
という書き方を
|
22
|
+
という書き方を考えると、なんだか簡潔とは言い難いですし、それ以上にasStream()が効率よく並列動作できるようなSpliteratorを作ってくれるかが気になります。後者は並列処理のオーバーヘッド(※)にかかわります。その点がどうなっているか不明ですが、Stream#parallelを使うなら、最初からIntStream.rangeを使った方が素直だし安心な気がします。
|
23
23
|
|
24
24
|
※: オーバーヘッド
|
25
|
-
複数スレッド用にパイプラインを分割する際に、一旦上流のパイプラインから一定要素を取り出して配列
|
25
|
+
複数スレッド用にパイプラインを分割する際に、一旦上流のパイプラインから一定要素を取り出して配列として蓄積する段取りをふまないと並列動作を始められないことを指します。IntStream.rangeで生成されるIntStreamはこんな処理を必要とせず、S~EのストリームをS~S+PとS+P+1~Eの2つのストリームに即座に分割し並列動作を開始できます。
|