java线程为什么这样没有输出
黄舟
黄舟 2017-04-18 10:49:08
0
3
554
 List<String> list = Arrays.asList("a","b","c","d");
 ExecutorService service = Executors.newFixedThreadPool(2);
 service.execute(() -> list.parallelStream().forEach(System.out::println));

这样一段代码什么都没输出,而将parallelStream去掉就可以输出,这是什么机制?谁能解释下

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

모든 응답(3)
阿神

parallelStream 메서드가 동시에 실행됩니다. 이는 스레드를 켜서 출력 soout을 실행하는 것과 같습니다.
출력이 없는 이유는 메인 스레드가 실행을 마쳤고, 이때는 soout이 없기 때문입니다. 코드 끝에 wait를 추가하면 효과를 볼 수 있습니다.

黄舟

병렬...이 방법은 무엇에 사용되나요?

巴扎黑

2층 답변이 아주 좋습니다
n개 대신 n+개 스레드를 여는 것과 같습니다

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿