Java · Avançado · Inglês · Técnico
parallel stream
Stream que divide o trabalho entre várias threads do ForkJoinPool comum, criado com parallelStream ou parallel(). Só compensa em grandes volumes e tarefas de CPU.
Onde usar
Aparece em review: 'não use parallel aqui'. Pode piorar o desempenho e causar bugs se a lambda alterar estado compartilhado.
Em código
var s = LongStream.rangeClosed(1, 1_000_000)
.parallel()
.map(n -> n * n % 7)
.sum();Exemplos
Don't use a parallel stream for a tiny list.
Não use um parallel stream para uma lista pequena.
The lambda mutates a shared list, so the parallel stream is buggy.
A lambda altera uma lista compartilhada, então o parallel stream tem bug.
Cuidado
Compartilha o pool comum com a aplicação inteira, e bloquear em I/O dentro dele trava outras tarefas.
Sinônimos
stream paralelo
Antônimos
stream sequencial