結論
javaのパラレルストリームでforEachは並列実行される
コードを書いて確かめてみた
forEach内でsleepして動作を確かめてみた
List<String> list = List.of("A", "B", "C"); list.parallelStream() .forEach(s -> { System.out.println(s + ": start"); System.out.println(s + ": " + Thread.currentThread().getName()); try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(s + ": end"); });
実行結果
B: start C: start C: ForkJoinPool.commonPool-worker-1 A: start A: ForkJoinPool.commonPool-worker-2 B: main B: end A: end C: end