teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

日本語の誤りを訂正

2017/10/14 04:17

投稿

KSwordOfHaste
KSwordOfHaste

スコア18404

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