3
かなり複雑なプロセスがあり、いくつかのレベルのネストされたforループが必要です。Java 8ストリームのストリーム並列処理
アクションは、特定の一連の条件に対してのみ実行されます。言い換えれば、
for(){
if(){
for(){
if(){
//Something happens RIGHT HERE
}
//And maybe here
}
}
}
他のステートメントはありません。異なるタイプのオブジェクトの束を反復する単なるコードパスです。
このロジックをストリームに置き換えると(このサイクルを完了するためにCPUが実行する操作の数を考慮すると、プロセスを並列化する方法があります)、ストリーム内にストリームがありますストリーム内のストリーム(BWOOOMMMPPPPPPP INCEPTION NOISE)と最上階層のparallelstream()は、最上位レベルの下のストリームは順番に実行されますが、それぞれのスレッド内で実行されますか?
toplevelItems.parallelstream().forEachOrdered{
//Does this stuff run in series within as many threads as there are toplevelItems
otherObjects.stream().forEach{
//or Naw?
stillOtherObjects.stream().forEach{
修正。このメソッドは引数として渡された複数のリストを使用して、私が使っていたforループで繰り返し処理します。繰り返しの潜在的な回数を考えれば、並列処理は基本的に反復を半減させることができます(2〜4コアを使用)。私はもちろん測定しますが、私は平行してここに行く方法だと確信しています。 – TheFunk