Différence entre les Tableaux.sort() et des Tableaux.parallelSort()
Passait par Java 8
fonctionnalités, mentionné ici. Ne pouvait pas comprendre ce parallelSort()
fait exactement. Quelqu'un peut m'expliquer quelle est la différence réelle entre les sort()
et parallelSort()
?
- Euh,
parallelSort
utilise plusieurs threads, alors quesort
n'est pas...
Vous devez vous connecter pour publier un commentaire.
Tri parallèle utilise filetage (chaque fil est un morceau de la liste et les trie en parallèle. Plus tard, ces triés morceaux sont fusionnés en un résultat).
C'est plus rapide quand il y a des beaucoup d'éléments dans la collection. Les frais généraux pour la parallélisation devient assez petit sur les grandes baies, mais il est grand pour les petits.
Prendre un coup d'oeil à ce tableau (bien sûr, les résultats dépendent de la CPU, le nombre de cœurs, processus d'arrière-plan, etc):
Prises à partir de ce lien: http://www.javacodegeeks.com/2013/04/arrays-sort-versus-arrays-parallelsort.html
Tableaux.parallelSort() :
Vous pouvez également lire les détails de mise en œuvre dans le Javadoc
Tableau.sort():
Source
Les principales différences entre les deux l'algorithme sont les suivantes :
1. Les tableaux de.sort() : est une séquence de tri.
2. Les tableaux de.ParallelSort() : est un parallèle de tri.
L'API utilise plusieurs threads.
Pour plus de résultats, nous avons tous à attendre pour JAVA 8, je suppose !! cheers !!
Vous pouvez vous référer à la javadoc, ce qui explique que l'algorithme utilise plusieurs threads si le tableau est assez grand:
En un mot,
parallelSort
utilise plusieurs threads. Cette l'article a beaucoup plus de détail si vous voulez vraiment savoir.De cette lien
Array.sort(myArray);
Vous pouvez maintenant utiliser –
Arrays.parallelSort(myArray);
Cette cassera automatiquement la cible de la collection en plusieurs parties, qui seront triés de façon indépendante à travers un certain nombre de noyaux, puis regroupées ensemble. Le seul inconvénient ici est que lorsqu'il est appelé à fortement les environnements multi-threads, comme une longue conteneur web, les avantages de cette approche va commencer à diminuer (de plus de 90%) en raison du coût de l'augmentation de la CPU changements de contexte.
Source- lien