我有一个相当复杂的过程,需要几个级别的嵌套for循环。
仅针对一组特定条件执行操作。换句话说:
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{
答案 0 :(得分:1)
顶部parallelStream()
以下的任何内容都将以连续方式完成。我假设您正在处理类似List<List<>>
的内容,因此您将在顶层下方创建一个与顶层无关的新流。