Como usar Fluxos Paralelos em Java

Streams em Java vêm em dois sabores básicos: sequencial e paralelo. Os elementos de um fluxo sequencial são produzidos pela corrente método e criar fluxos que são processados ​​um elemento após a próxima. fluxos paralelos, em contraste, pode tirar proveito de processadores multicore, quebrando seus elementos em duas ou mais pequenos riachos, executando operações sobre eles, e então recombinar os fluxos separados para criar o fluxo de resultado final.

Cada um dos fluxos intermédios podem ser processados ​​por um segmento separado, o que pode melhorar o desempenho de grandes correntes.

Por padrão, os fluxos são sequenciais. Mas a criação de um fluxo paralelo é fácil: Basta usar o parallelStream em vez do método corrente método no início da tubagem.

Por exemplo, para imprimir todos os feitiços de HP usando uma corrente paralela, use este código:

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

Note que quando você usa um fluxo paralelo, não é possível prever a ordem em que cada elemento do fluxo é processado. Isso porque quando o fluxo é dividido e executado em duas ou mais linhas, a ordem em que o processador executa os fios não é previsível.

Para demonstrar este ponto, considere o seguinte exemplo simples:

System.out.println ( "primeiro fluxo paralelo:") -spells.parallelStream () foreach (s -> System.out.println (s)) - System.out.println ( " Nsecond fluxo paralelo:"). - . spells.parallelStream () foreach (s -> System.out.println (s)) -

Ao executar este código, os resultados será algo parecido com isto:

Primeiro fluxo paralelo: FideliusFinite IncatatumEngorgioLocomotor MortisApareciumAvisSecond fluxo paralelo: FideliusEngorgioFinite IncatatumLocomotor MortisAvisAparecium

Note que, embora os mesmos períodos são impressos para cada uma das correntes, que são impressas numa ordem diferente.

menu