BackEnd/Java
Java8. parallelSort
hanseom
2022. 1. 25. 22:44
반응형
Arrays.parallelSort(): Fort/Join 프레임워크를 사용해서 배열을 병렬로 정렬하는 기능을 제공합니다. 병렬 정렬 알고리즘은 배열을 둘로 계속 쪼개고 합치면서 정렬합니다.
import java.util.Arrays;
import java.util.Random;
import java.util.stream.IntStream;
public class ParallelSortClass {
public static void main(String[] args) {
// 정렬하는 배열의 크기에 따라 결과는 달라질 수 있습니다.
int size = 1500;
int[] numbers = new int[size];
Random random = new Random();
IntStream.range(0, size).forEach(i -> numbers[i] = random.nextInt());
long start = System.nanoTime();
// serial sorting: 싱글 쓰레드로 정렬합니다.
Arrays.sort(numbers);
System.out.println("serial sorting took " + (System.nanoTime() - start));
// [결과]: 806358
IntStream.range(0, size).forEach(i -> numbers[i] = random.nextInt());
start = System.nanoTime();
// parallel sorting: 병렬로 정렬을 수행합니다.
Arrays.parallelSort(numbers);
System.out.println("parallel sorting took " + (System.nanoTime() - start));
// [결과]: 351210
}
}
실행할 때마다 결과는 상이하지만, Arrays.parallelSort가 Arrays.sort 보다 느린 경우는 없습니다.
반응형