Arrays.parallelSort()
- Fork/Join 프레임워크를 사용해서 배열을 병렬로 정렬하는 기능을 제공한다.
병렬 정렬 알고리듬
- 배열을 둘로 계속 쪼갠다.
- 합치면서 정렬한다.
- sort()와 parallelSort() 비교
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();
Arrays.sort(numbers);
System.out.println("serial sorting took " + (System.nanoTime() - start));
IntStream.range(0, size).forEach(i -> numbers[i] = random.nextInt());
start = System.nanoTime();
Arrays.parallelSort(numbers);
System.out.println("parallel sorting took " + (System.nanoTime() - start));
- serial sorting took 548957
- parallel sorting took 364074
- 알고리듬 효율성은 같다. 시간 O(n logN) 공간 O(n)
참고
백기선 - 더 자바, Java8
'프로그래밍 > Java' 카테고리의 다른 글
함수형 인터페이스와 람다 표현식 소개 (0) | 2022.06.07 |
---|---|
Metaspace (0) | 2022.05.06 |
CompletableFuture (5) (0) | 2022.05.06 |
CompletableFuture (4) (0) | 2022.05.06 |
CompletableFuture (2) - Excutors (0) | 2022.05.06 |