Wie funktionieren parallele Java Streams?

michac1995

Mitglied
Hallo zusammen.
Wenn ich jz folgenden Stream haben:
Code:
double average =
roster .parallelStream()
.filter(p -> p.getGender() == Person.Sex.MALE) 
.mapToInt(Person::getAge)
.average()
.getAsDouble();

wie funktioniert da der Parallelismus? Wird die Datenmenge aufgeteilt in Threads , welche dann den kompletten Stream parallel ablaufen?
Was macht . average? sammelt es erst alle Daten , ist also dann nicht parallel?

Grüße und Danke
 
Wird die Datenmenge aufgeteilt in Threads , welche dann den kompletten Stream parallel ablaufen?
Ja, der Stream wird auf mehrere Streams aufgeteilt, die parallel laufen.

Was macht . average? sammelt es erst alle Daten , ist also dann nicht parallel?
Nein, für jeden der parallelen Stream werden die Daten erstmal einzeln gesammelt, und dann werden die Zwischenergebnisse zusammengefasst

(Wenn dies das Oracle-Beispiel ist: das steht im Satz darüber)
 

Zurück
Oben