Java 8流内流并行

Java 8流内流并行,java,parallel-processing,java-stream,Java,Parallel Processing,Java Stream,我有一个相当复杂的过程,需要几个级别的嵌套for循环 仅针对一组特定条件执行操作。换言之: for(){ if(){ for(){ if(){ //Something happens RIGHT HERE } //And maybe here } } } 没有其他语句,只有一条通过一堆不同类型对象迭代的可靠代码路径 我的问题是,如果我用流

我有一个相当复杂的过程,需要几个级别的嵌套for循环

仅针对一组特定条件执行操作。换言之:

for(){ 
    if(){ 
        for(){ 
            if(){
                //Something happens RIGHT HERE
            }
            //And maybe here
        }
    }
}
没有其他语句,只有一条通过一堆不同类型对象迭代的可靠代码路径

我的问题是,如果我用流替换这个逻辑(考虑到CPU必须执行多少个操作才能完成这个循环,我认为并行处理是一个方向),我有一个流中的流(bwoommppppppp 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{

顶部
parallelStream()
以下的任何操作都将以串行方式完成。我假设您使用的是类似于
列表的东西,因此您将在顶层下面创建一个与顶层没有连接的新流。

正确。该方法使用多个作为参数传入的列表,然后由我使用的for循环进行迭代。但是,一旦我计算出迭代的潜在数量,我意识到并行处理基本上可以将我的迭代减少一半甚至四分之一(使用2到4个内核),我认为这将节省大量时间!我当然会测量,但我相信并行性是解决问题的方法。