0
我知道,这个问题听起来很愚蠢 - 我认为lambda表达式是并行执行的,所以当我运行像睡眠 - 的Java 8 Lambda表达式
List<Integer> list = ArrayList<Integer>();
list.add(3);
list.add(2);
list.add(1);
list.forEach(n -> System.out.println(""+n));
我woud不会得到“3 \ N2 \ N1 \ n“每次。我试图在闭包中做一些sleep(),但它看起来像睡在上面的线程,而不是每个lambda执行。 (类似n - > {sleep(n * 1000); System.out.println(“”+ n)})这可以做到吗?或者我错了,因为应该使用某些并行流等,或者不使用连续列表?或者我的想法总是错误的?
'Thread.sleep'不能使任何其他线程,但当前的一个睡眠。当前线程是lambda执行的线程。 –
如果你想testride并行性,你需要多于三个列表元素。创建几千个,然后看看发生了什么。 –
你想要做什么,以及没有按预期发生的事情? – Joffrey