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

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
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha