Wie zu parallelen Streams in Java verwenden

Streams in Java gibt es in zwei Grundgeschmacksrichtungen: sequentiell und parallel. Elemente in einem sequentiellen Strom werden durch die erzeugte Strom Verfahren und schaffen Ströme, die ein Element nach dem anderen verarbeitet werden. Parallel Ströme können dagegen um alle Vorteile von Multi-Core-Prozessoren durch ihre Elemente in zwei brechen oder mehrere kleinere Ströme, Operationen auf ihnen, und dann rekombinieren die getrennten Strömen Durchführung des Endergebnisses Strom zu erzeugen.

Jeder der Zwischenströme können durch einen separaten Thread verarbeitet werden, die die Leistung für große Ströme zu verbessern.

Standardmäßig sind die Ströme sequentiell. Aber ein Parallelstrom zu schaffen ist einfach: Verwenden Sie einfach die parallelStream Verfahren anstelle des Strom Verfahren am Anfang der Rohrleitung.

Zum Beispiel können alle von HP Zauber zu drucken einen parallelen Strom, verwenden Sie diesen Code:

. Spells.parallelStream () foreach (s -> System.out.println (en)) -

Beachten Sie, dass, wenn Sie einen parallelen Strom verwenden, können Sie die Bestellung nicht vorhersagen kann, in dem jedes Element des Stroms verarbeitet wird. Das ist, weil, wenn der Strom geteilt und laufen auf zwei oder mehr Threads ist, in dem die Reihenfolge der Prozessor die Threads ausführt, nicht vorhersehbar ist.

Um diesen Punkt zu demonstrieren, betrachten Sie dieses einfache Beispiel:

System.out.println ( "First Parallel Strom:") -spells.parallelStream () foreach (s -> System.out.println (en)) - System.out.println ( " nZweite Parallel Strom:"). - . spells.parallelStream () foreach (s -> System.out.println (en)) -

Wenn Sie diesen Code ausführen, werden die Ergebnisse wie folgt aussehen:

Erste parallel Strom: FideliusFinite IncatatumEngorgioLocomotor MortisApareciumAvisSecond parallel stream: FideliusEngorgioFinite IncatatumLocomotor MortisAvisAparecium

Beachten Sie, dass obwohl die gleichen Zauber für jeden der Ströme gedruckt werden, sie in einer anderen Reihenfolge gedruckt werden.

Menü