ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Java8. parallelSort
    BackEnd/Java 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 보다 느린 경우는 없습니다.

    반응형

    'BackEnd > Java' 카테고리의 다른 글

    Java 9. 주요 변경 내용 (1)  (0) 2024.12.03
    Java 9. JPMS  (0) 2024.12.02
    Java8. CompletableFuture  (0) 2022.01.23
    Callable과 Future  (0) 2022.01.23
    Multi-Thread Programming  (0) 2022.01.23

    댓글

Designed by Tistory.