/ / ¿Por qué Java 8 tiene Arrays.parallelSort () pero no Collections.parallelSort ()? - java, multiproceso, lista, clasificación, java-8

¿Por qué Java 8 tiene Arrays.parallelSort () pero no Collections.parallelSort ()? - java, multihilo, lista, clasificación, java-8

Java 8 introduce un algoritmo paralelo para la ordenación multihebra de arreglos, en la forma de la sobrecarga Arrays.sort() métodos.

¿Por qué no también proporciona una Collections.parallelSort(), para la clasificación multihilo de List?

Respuestas

2 para la respuesta № 1

UN List no necesariamente permite la implementación eficiente de los mismos algoritmos de clasificación en paralelo que una matriz. Es posible que pueda aplicarla directamente a un ArrayList, pero muy probablemente no a LinkedList, debido a su falta de acceso aleatorio eficiente. Existen eficientes algoritmos de clasificación de subprocesos múltiples para ese tipo de lista, pero son diferentes de una lista de acceso aleatorio.

Y, de hecho, la implementación segura de subprocesos de la List interfaz no puede soportar eficiente externaClasificación multi-hilo en absoluto, debido a la sincronización. Proporcionar un algoritmo de clasificación genérico para esos sería imposible, y de hecho, un algoritmo paralelo podría ser más lento que un algoritmo secuencial.