我知道这个问题听起来很愚蠢 - 我认为lambdas是并行执行的,所以当我运行类似
的时候List<Integer> list = ArrayList<Integer>();
list.add(3);
list.add(2);
list.add(1);
list.forEach(n -> System.out.println(""+n));
我没有得到&#34; 3 \ n2 \ n1 \ n&#34;每次。我试图在闭包内部进行某种类型的sleep(),但它看起来像是睡在上面的线程,而不是每个lambda执行。 (类似于n - &gt; {sleep(n * 1000); System.out.println(&#34;&#34; + n)})无论如何可以这样做吗?或者我错了,因为应该使用某些并行流等,而不是使用concurent list?或者我的想法完全错了?
答案 0 :(得分:1)
forEach
通常是按顺序执行的。如果要进行并行执行,则需要创建并行流:list.parallelStream().forEach(...)
。