Piyushクマール:
私は、リストの遭遇順序を尊重し、リスト上の(ソースなど)、マップする(栄誉に関わらず、その順次または並列ストリームかどうかの順に遭遇しない)のforEach()端末操作とストリームパイプラインの地図操作を使用していた場合シーケンシャルまたはパラレルストリームの場合は?
List<Integer> = Arrays.asList(1,2,3,4,5)
someList.stream().map(i -> i*2).forEach(System.out::println) // this is sequential stream
someList.parallelStream().map(i -> i*2).forEach(System.out::println) // this is parallel stream
yesの場合、この記事でhttps://stackoverflow.com/a/47337690/5527839、それは言及されているマップの操作が並行して実行されます。順序が維持されている場合は、並列ストリームを使用した場合、どのようにそれは良いパフォーマンスを行います。並列ストリームを使用しての何点?
デッドプール :
順序が維持されている場合は、並列ストリームを使用した場合、どのようにそれは良いパフォーマンスを行います。並列ストリームを使用しての何点?(はいまだあなたは、パフォーマンスを向上しますが、レベルは期待できません)
あなたは、使用している場合でもforEachOrdered()
一方でparallelStream
、中間操作はmap
同時実行スレッドで実行されますが、端末操作になりますorEachOrdered
彼らは順番に処理することができます。コードの下に試してみてください、あなたはで並列処理が表示されますmap
操作
List<Integer> someList = Arrays.asList(1,2,3,4,5);
someList.stream().map(i -> {
System.out.println(Thread.currentThread().getName()+" Normal Stream : "+i);
return i*2;
}).forEach(System.out::println); // this is sequential stream
System.out.println("this is parallel stream");
someList.parallelStream().map(i -> {
System.out.println(Thread.currentThread().getName()+" Parallel Stream : "+i);
return i*2;
}).forEachOrdered(System.out::println); // this is parallel stream
名誉の出会いのためにマップのだろうか?中間事業に関連するどのような方法を注文していますか?
もしそうであればparallelstream
、それは通常のストリームは、その後順番に遭遇するマップであればマップは、任意の順序は発生しません、それは完全に中間操作にないストリームに依存します