ExpertiDict

Java · Avançado · Inglês · Técnico

parallel stream

/ˈpærəlɛl striːm/substantivo

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

Veja também

Todos os termos de Java