美文网首页
并行——使用流还是CompaletableFutures

并行——使用流还是CompaletableFutures

作者: 阿灯_supwinr | 来源:发表于2016-12-12 14:07 被阅读0次

目前为止,你已经知道对集合进行并行计算有两种方式:要么将其转化为并行流,利用map这样的操作开展工作,要么枚举出集合中每一个元素,创建新的线程,在ComlettableFuture内对其进行操作。后者提供了更多的灵活性,你可以调整线程池的大小,而这能帮助你确保整体的计算不会应为线程都在等待I/O而发生阻塞。

我们对使用这些API的建议如下。

  • 如果你进行的是计算密集型的操作,并且没有I/O,那么推荐使用Stream接口,因为实现简单,同时效率也可能是最高的(如果所有的线程都是计算密集型的,那就没有必要创建比处理器核数更多的线程)。
  • 反之,如果你并行的工作单元还设计等待I/O的操作(包括网络连接等待),那么使用CompletatableFuture灵活性更好,你可以像前文讨论的那样,依据等待/计算,或者W/C的比率设定需要使用的线程数。这种情况不使用并行流的另一个原因是,处理流的流水线中如果发生I/O等待,流的延迟特性会让我们很难判断到底什么时候触发了等待。
                                                                                                                    摘自-《java8 实战》

相关文章

  • 并行——使用流还是CompaletableFutures

    目前为止,你已经知道对集合进行并行计算有两种方式:要么将其转化为并行流,利用map这样的操作开展工作,要么枚举出集...

  • java-java8并行接口的选用策略

    并行——使用流还是CompletableFutures?目前为止,你已经知道对集合进行并行计算有两种方式:1 要么...

  • Java8 Stream-3 并行流

    1 用并行流并行处理数据 sequential() 顺序流parallel() 并行流 留意装箱。自动装箱和拆箱操...

  • Java8使用并行流(ParallelStream)注意事项

    Java8并行流ParallelStream和Stream的区别就是支持并行执行,提高程序运行效率。但是如果使用不...

  • 如何高效的使用并行流

    在Java7之前想要并行处理大量数据是很困难的,首先把数据拆分成很多个部分,然后把这这些子部分放入到每个线程中去执...

  • 第七章 并行数据处理与性能

    1、内部迭代让你可以并行处理一个流,而无需在代码中显式使用和协调不同的线程。 2、虽然并行处理一个流很容易,却不能...

  • Java_Stream流

    目录1.什么是Stream2.API功能举例-- 2.1 串行流与并行流-- 2.1.1 串行流与并行流的获取方式...

  • Java8并行流与并行排序

    1、使用并行流过滤数据 案例:统计1-1000000内所有的质数数量。 2、从集合中得到并行流 在函数式编程中,我...

  • Java 8 与并发(二)

    一、并行流与并行排序 Java 8中可以在接口不变的情况下,将流改为并行流,方便在多线程中进行集合中的数据处理。 ...

  • 并行数据处理与性能

    并行流 parallel() 如果每次应用函数都要依赖前一次应用的结果,并行只会比顺序处理增加开销。错用并行流的首...

网友评论

      本文标题:并行——使用流还是CompaletableFutures

      本文链接:https://www.haomeiwen.com/subject/hgummttx.html