设为首页 加入收藏

TOP

Java 8新特性之CompletableFuture:组合式异步编程(三)
2018-11-20 22:09:45 】 浏览:590
Tags:Java 特性 CompletableFuture: 组合式 异步 编程
-> f.thenAccept(System.out::println))
                //你可以把构成的Stream的所有CompletableFuture<void>对象放到一个数组中,等待所有的任务执行完成
                .toArray(size -> new CompletableFuture[size]);
       
        //allOf方法接受一个CompletableFuture构成的数组,数组中所有的COmpletableFuture对象执行完成后,
        //它返回一个COmpletableFuture<Void>对象。所以你需要哦等待最初Stream中的所有CompletableFuture对象执行完毕,
        //对allOf方法返回的CompletableFuture执行join操作
        CompletableFuture.allOf(futures).join();


 


Connected to the target VM, address: '127.0.0.1:62278', transport: 'socket'
8twoprice :113.31
threeprice :108.15
oneprice :137.844
Disconnected from the target VM, address: '127.0.0.1:62278', transport: 'socket'
fourprice :119.2725
3768


还有一个方法anyOf,对于CompletableFuture对象数组中有任何一个执行完毕就不在等待时使用。


小结:


  1.执行比较耗时的操作时,尤其是那些依赖一个或多个远程服务的操作,使用异步任务可以改善程序的性能,加快程序的响应速度。


  2.你应该尽可能的为客户提供异步API。使用CompletableFuture类提供的特性,能够轻松的实现这一目标。


  3.CompletableFuture类还提供了异常管理的机制,然给你有机会抛出/管理异步任务执行中发生的异常。


  4.将同步API的调用封装到一个CompletableFuture中,你能够以异步的方式使用其结果。


  5.如果异步任务之间互相独立,或者他们之间某一些的结果是另一些的输入,你可以讲这些异步任务合并成一个。


  6.你可以为CompletableFuture注册一个回调函数,在Future执行完毕或者他们计算的结果可用时,针对性的执行一些程序。


  7.你可以决定在什么时候将诶书程序的运行,是等待由CompletableFuture对象构成的列表中所有的对象都执行完毕,还是只要其中任何一个首先完成就终止程序的运行。


首页 上一页 1 2 3 4 5 6 7 下一页 尾页 3/7/7
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Kafka分区与消费者的关系 下一篇Java 8新特性之新的日期和时间API

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目