异步编排CompletableFuture

场景一,并发调用,结果并集处理

public static void test() throws Exception{
  MyService service = new MyService();
  CompletableFuture<String> future1 = sevice.getData("http://www.baidu.com");
  CompletableFuture<String> future2 = service.getData("www.tx.com");
  CompletableFuture<String> future3 = service.getDa ta("www.aaa.com");
  CompletableFuture.allOf(future1,future2,future3)
  .thenApplyAsync(
    ()->{
     //异步处理
    }
  )exceptionally(e->{//处理异常});

}

服务并发调用消费结果

public static void main(String[] args){
  MyService service = new MyService();
  CompletableFuture<String> future1 = service.getData("http://www.aa.com");CompletableFuture<String> future2 = service.getData("http://www.aa.com");  
  future1.thenAcceptBothAsync(
    future2,(future1,future2)->{
      //异步处理结果
    }
  )exceptionally(e->{//异常处理});
  
  
}

执行任务一,之后并发执行任务二、三

public static void test3(){
  MyService myservice = new Myservice();
  CompletableFuture<String> future1 = service.getData("http://www.baidu.com");
  CompletableFuture<String> future2 = future1.thenApplyAsync((v)->{return "result from service2"});
  CompletableFuture<String> future3 = service.getData("www.as.com");
  future2.thenCombineAsync(future3,(f2result,f3result)->{//处理业务})。exceptionally(e->{//处理异常});

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值