Dois-je toujours utiliser un courant parallèle lorsque cela est possible?

Avec Java 8 lambdas et il est facile de parcourir les collections comme des ruisseaux, et tout aussi facile à utiliser un courant parallèle. Deux exemples de les docs, le second en utilisant parallelStream:

myShapesCollection.stream()
    .filter(e -> e.getColor() == Color.RED)
    .forEach(e -> System.out.println(e.getName()));

myShapesCollection.parallelStream() //<-- This one uses parallel
    .filter(e -> e.getColor() == Color.RED)
    .forEach(e -> System.out.println(e.getName()));

Tant que je ne se soucient pas de l'ordre, ne serait-il toujours être intéressant d'utiliser le parallèle? On pourrait penser qu'il est plus rapide la division du travail sur plus de cœurs.

Existe-il d'autres considérations? Quand doit-courant parallèle être utilisé et à quel moment les non-parallèle-elle être utilisée?

(Cette question est posée pour déclencher une discussion au sujet de comment et quand utiliser les flux parallèles, pas parce que je pense toujours à l'aide de eux est une bonne idée).

InformationsquelleAutor Matsemann | 2013-12-04