When I apply parallel sorting using threads in Java 8, I get an invalid result:
List<String> list = new ArrayList<>();
list.add("A");
list.add("C");
list.add("B");
list.stream().sorted().forEach(System.out::println);
System.out.println("-");
list.stream().parallel().sorted().forEach(System.out::println);
Results:
A
B
C
-
B <----- Invalid order
C
A
Why does parallel sorting return unsorted results?
source
share