Sollte ich immer mit einem parallelen stream, wenn möglich?

Mit Java 8 und lambdas es ist einfach zu iterieren über Sammlungen von Datenströmen, und ebenso einfach in ein parallel-stream. Zwei Beispiele aus die docs, die zweite mit 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()));

Solange ich kümmern sich nicht um die Reihenfolge, wäre es immer von Vorteil sein, verwenden Sie die parallele? Man würde denken, es ist schneller, die Aufteilung der Arbeit auf mehrere Kerne.

Gibt es andere überlegungen? Wann sollte parallel stream verwendet werden, und Wann sollten die nicht parallel verwendet werden?

(Diese Frage wird gebeten, die trigger eine Diskussion darüber, wie und Wann die Nutzung paralleler streams, nicht weil ich denke, dass immer mit Ihnen ist eine gute Idee.)

InformationsquelleAutor Matsemann | 2013-12-04

Schreibe einen Kommentar