生成无限并行流

时间:2016-02-26 20:00:23

标签: java parallel-processing java-8 java-stream

我正在尝试找到一种创建无限并行流的好方法。 现在我的代码看起来像这样:

Stream<List<Integer>> lists =
                Stream.iterate(true, x -> true)
                        .parallel()
                        .map(x ->
                                IntStream.rangeClosed(1, population)
                                        .boxed()
                                        /* ... */
                                        .collect(toList()))
                        .limit(50_000);

布尔值x 值完全没有意义。 我实际上希望能够做的就是这样的伪代码

Stream<List<Integer>> lists1 =
            Stream.parallel().generate(() ->
                    IntStream.rangeClosed(1, population)
                            .boxed()
                            /* ... */
                            .collect(toList()))
                    .limit(50_000);

欢迎任何好的提示。感谢

1 个答案:

答案 0 :(得分:2)

简单地:

List<List<Integer>> res = Stream.generate(() ->
                                             // ...
                                         ).parallel()
                                .limit(50_000)
                                .collect(toList());