Cómo utilizar corrientes paralelas en java

Secuencias en Java son de dos tipos básicos: secuencial y paralelo. Los elementos en una corriente secuencial se producen por la corriente método y crear flujos que se procesan un elemento después de la próxima. Corrientes paralelas, por el contrario, pueden sacar el máximo provecho de los procesadores multinúcleo rompiendo sus elementos en dos o más pequeños arroyos, realizando operaciones en ellos, y luego recombinar las corrientes separadas para crear el flujo de resultado final.

Cada una de las corrientes intermedias pueden ser procesados ​​por un hilo separado, lo que puede mejorar el rendimiento para grandes corrientes.

Por defecto, los arroyos son secuenciales. Pero la creación de una corriente paralela es fácil: Sólo tiene que utilizar el parallelStream método en lugar de la corriente método en el comienzo de la tubería.

Por ejemplo, para imprimir todos los hechizos de HP utilizando una corriente paralela, utilice este código:

. spells.parallelStream () forEach (s -> System.out.println (s)) -

Tenga en cuenta que cuando se utiliza una corriente paralela, no se puede predecir el orden en el que se procesa cada elemento de la secuencia. Eso es porque cuando la corriente se divide y se ejecutan en dos o más hilos, el orden en que el procesador ejecuta los hilos no es predecible.

Para demostrar este punto, considere este ejemplo sencillo:

System.out.println ("Primera flujo paralelo:") -spells.parallelStream () forEach (s -> System.out.println (s)) - System.out.println (" Nsecond flujo paralelo:"). - . spells.parallelStream () forEach (s -> System.out.println (s)) -

Cuando se ejecuta este código, los resultados se verá algo como esto:

Primero flujo paralelo: FideliusFinite IncatatumEngorgioLocomotor MortisApareciumAvisSecond flujo paralelo: FideliusEngorgioFinite IncatatumLocomotor MortisAvisAparecium

Tenga en cuenta que si bien los mismos hechizos se imprimen para cada uno de los cursos de agua, que se imprimen en un orden diferente.




» » » » Cómo utilizar corrientes paralelas en java