首页 > 解决方案 > 为什么 ParallelFlux 没有类似于 Flux 的 collectList()?

问题描述

Flux 有 collectList(),使用起来非常方便,但是 ParallelFlux 中没有 collectList(),我试图了解在 ParallelFlux 中省略 collectList() 背后的原因。

标签: project-reactor

解决方案


由于创建 ParallelFlux 是为了在不同线程中并行运行流,因此执行顺序与第一个流的顺序不同,因此通量没有正确的顺序来收集流。

- 它为您提供收集以按照您的规则收集它

- 它为您提供 collectSortedList 以您选择的排序方式收集

- 如果您只想将其收集为列表并且订单不计量,您可以这样做

  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));

推荐阅读