Java 8流内流并行
我有一个相当复杂的过程,需要几个级别的嵌套for循环 仅针对一组特定条件执行操作。换言之: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(){
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个内核),我认为这将节省大量时间!我当然会测量,但我相信并行性是解决问题的方法。