[Java / 조각] Arrays.sort(), Arrays.parallelSort()

clean·2024년 1월 14일
0
post-thumbnail

java 8부터 Arrays 클래스에 parallelSort() 정렬 메소드가 추가되었다. 이에 대해 알아보자.

sort()와 parallelSort()

java에서 배열을 정렬하는 가장 간편한 방법은 java.util 패키지의 Arrays 클래스에 있는 static method인 sort() 메소드를 사용하는 것이다.

int[] intValues = new int[10];
// 생략
Arrays.sort(intValues);

Java 8부터는 parallelSort() 정렬 메소드가 제공되며, Java 7부터 등장한 Fork-Join 프레임워크가 내부적으로 사용된다. fork-join 방식은 연산을 여러 개의 스레드로 나누어 처리하고 이를 합치는 방식을 의미한다.

parallelSort()를 호출하는 방식은 기존 Arrays.sort()와 동일하다.

int[] intValues = new int[10];
// 생략
Arrays.parallelSort(intValues);

그렇다면 어떨 때 sort(), 어떨 때 parallelSort()를 쓰는 것이 좋은 것일까?

배열의 원소가 많을 때는 parallelSort()

parallelSort()는 필요에 따라서 여러 개의 스레드로 나누어서 작업을 수행을 한다. 따라서 paralllSort()가 CPU를 더 많이 사용하겠지만 처리 속도는 더 빠르다.

sort()와 parallelSort()의 성능을 비교해보면 4,984개부터 parallelSort()의 속도가 더 빨라지는 것을 볼 수 있다.

따라서 배열 원소의 개수가 적을 때에는 sort()를, 원소의 개수가 많다면 parallelSort()를 쓰는 것이 좋다.

profile
블로그 이전하려고 합니다! 👉 https://onfonf.tistory.com 🍀

0개의 댓글