Java Language Stream parallelo


Esempio

Nota: prima di decidere quale Stream utilizzare, dare un'occhiata al comportamento di ParallelStream vs Sequential Stream .

Quando si desidera eseguire contemporaneamente operazioni di Stream , è possibile utilizzare uno di questi modi.

List<String> data = Arrays.asList("One", "Two", "Three", "Four", "Five");
Stream<String> aParallelStream = data.stream().parallel();

O:

Stream<String> aParallelStream = data.parallelStream();

Per eseguire le operazioni definite per lo streaming parallelo, chiamare un operatore di terminale:

aParallelStream.forEach(System.out::println);

(Un possibile) output dal Stream parallelo:

Tre
quattro
Uno
Due
Cinque

L'ordine potrebbe cambiare in quanto tutti gli elementi sono elaborati in parallelo (il che potrebbe renderlo più veloce). Usa parallelStream quando l'ordine non ha importanza.

Impatto sulle prestazioni

Nel caso in cui sia coinvolta la rete, i Stream paralleli possono peggiorare le prestazioni generali di un'applicazione in quanto tutti i Stream paralleli utilizzano un comune pool di thread fork-join per la rete.

D'altra parte, parallel Stream s può migliorare significativamente le prestazioni in molti altri casi, a seconda del numero di core disponibili nella CPU in esecuzione al momento.