Java 8 - Stream의 병렬처리(Parallel)

By JS | Last updated: June 13, 2021

Stream은 기본적으로 single thread에서 처리되지만, Multi thread에서 처리할 수도 있습니다.

Stream.parallel()

직렬

Single thread에서 Stream을 처리하는 예제입니다. 출력 순서는 리스트 순서와 동일합니다.

List<String> list =
        Arrays.asList("a", "b", "c", "d", "e", "f", "g", "h", "i");
Stream<String> stream = list.stream();

stream.forEach(System.out::println);

Output:

a
b
c
d
e
f
g
h
i

병렬

Stream.parallel()은 병렬로 동작하는 Stream을 리턴합니다. 출력 순서는 리스트의 순서와 다르며, 실행할 때마다 다를 수 있습니다.

List<String> list =
        Arrays.asList("a", "b", "c", "d", "e", "f", "g", "h", "i");
Stream<String> stream = list.stream();

stream.parallel().forEach(System.out::println);

Output:

f
e
h
i
g
c
b
d
a

Collection.parallelStream()

Collection.parallelStream()은 병렬로 동작하는 Stream 객체를 리턴합니다.

List<String> list =
        Arrays.asList("a", "b", "c", "d", "e", "f", "g", "h", "i");
Stream<String> stream = list.parallelStream();

stream.forEach(System.out::println);

Output:

f
e
c
d
b
a
h
i
g
댓글을 보거나 쓰려면 이 버튼을 눌러주세요.
codechachaCopyright ©2019 codechacha