List<String> list = Arrays.asList("a","b","c","d");
ExecutorService service = Executors.newFixedThreadPool(2);
service.execute(() -> list.parallelStream().forEach(System.out::println));
这样一段代码什么都没输出,而将parallelStream去掉就可以输出,这是什么机制?谁能解释下
阿神2017-04-18 10:51:08
parallelStream 메서드가 동시에 실행됩니다. 이는 스레드를 켜서 출력 soout을 실행하는 것과 같습니다.
출력이 없는 이유는 메인 스레드가 실행을 마쳤고, 이때는 soout이 없기 때문입니다. 코드 끝에 wait를 추가하면 효과를 볼 수 있습니다.