List<String> list = Arrays.asList("a","b","c","d"); ExecutorService service = Executors.newFixedThreadPool(2); service.execute(() -> list.parallelStream().forEach(System.out::println));
这样一段代码什么都没输出,而将parallelStream去掉就可以输出,这是什么机制?谁能解释下
人生最曼妙的风景,竟是内心的淡定与从容!
parallelStream 메서드가 동시에 실행됩니다. 이는 스레드를 켜서 출력 soout을 실행하는 것과 같습니다. 출력이 없는 이유는 메인 스레드가 실행을 마쳤고, 이때는 soout이 없기 때문입니다. 코드 끝에 wait를 추가하면 효과를 볼 수 있습니다.
병렬...이 방법은 무엇에 사용되나요?
2층 답변이 아주 좋습니다n개 대신 n+개 스레드를 여는 것과 같습니다
parallelStream 메서드가 동시에 실행됩니다. 이는 스레드를 켜서 출력 soout을 실행하는 것과 같습니다.
출력이 없는 이유는 메인 스레드가 실행을 마쳤고, 이때는 soout이 없기 때문입니다. 코드 끝에 wait를 추가하면 효과를 볼 수 있습니다.
병렬...이 방법은 무엇에 사용되나요?
2층 답변이 아주 좋습니다
n개 대신 n+개 스레드를 여는 것과 같습니다