java - 生成无限并行流

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

boolean x 值完全没有意义。 我实际上希望能够做的事情看起来像这样伪代码:

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

欢迎任何好的提示。谢谢

最佳答案

简单地说:

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

关于java - 生成无限并行流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35660651/

相关文章:

java - 优化基于正则表达式的查找函数

java - gson 不会反序列化数组

java - 使用并行流返回最快的提供值

Websphere 9.0 中的 Java 文件

java - EMMA 究竟是如何标记被覆盖的代码行的……?

java - 快速排序时间复杂度

c - 测量 CUDA 内核时的时间不同

c# - 我如何在 Emgu CV 项目中利用 OpenCL

java-8 - Java 8 分组函数返回 Map<String, Integer> 而不是 Map<String,Long>

javafx - 如何为 JavaFX 编写 KeyListener