Java 8 führt einen parallelen Algorithmus für die Multi-Thread-Sortierung von Arrays in Form des überladenen Arrays.sort()
Methoden.
Warum liefert es nicht auch Collections.parallelSort()
für die Multi-Thread-Sortierung von List
?
A List
erlaubt nicht notwendigerweise eine effiziente Implementierung der gleichen parallelen Sortieralgorithmen wie ein Array. Sie können es möglicherweise direkt auf ein ArrayList
anwenden, aber höchstwahrscheinlich nicht auf ein LinkedList
, da es keinen effizienten wahlfreien Zugriff gibt. Für diese Art von Liste gibt es effiziente Sortieralgorithmen mit mehreren Threads, die sich jedoch von einer Liste mit wahlfreiem Zugriff unterscheiden.
Tatsächlich unterstützt die threadsichere Implementierung der Schnittstelle List
aufgrund der Synchronisation möglicherweise keine effiziente externe Sortierung mit mehreren Threads. Es wäre unmöglich, einen generischen Sortieralgorithmus für diese bereitzustellen, und tatsächlich könnte ein paralleler Algorithmus für sie langsamer sein als ein sequentieller Algorithmus.
Tags und Links java java-8 multithreading list sorting