Почему ParallelFlux не имеет collectList (), похожий на Flux? - PullRequest
0 голосов
/ 02 мая 2019

У Flux есть collectList (), который очень удобно использовать, однако в ParallelFlux нет collectList (), я пытаюсь понять причину, по которой не следует использовать collectList () в ParallelFlux.

1 Ответ

1 голос
/ 02 мая 2019

Поскольку ParallelFlux создается для параллельного запуска потоков в другом потоке, порядок выполнения не совпадает с порядком первого потока, поэтому поток не имеет правильного порядка для сбора потока.

- он предлагает вам собирать, чтобы собирать его по вашему правилу

- он предлагает вам собиратьСортированный список для сбора отсортированным способом, который вы выберете

- если вы просто хотите его забратьв виде списка, а порядок не измеряется, вы можете сделать это следующим образом

  Integer integer[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
    ParallelFlux.from(Flux.fromArray(integer), 4)
            .runOn(Schedulers.parallel())
            .sequential()
            .collectList()
            .subscribe(integer1 -> System.out.println(integer1));
...