java支持多任务之间的依赖协作关系

Java1.8引入CompletionStage支持异步任务处理和多任务依赖协作。它定义了不同行为,如根据上一阶段结果应用Function或Consumer,顺序触发其他依赖阶段,并提供了同步、异步执行选项。CompletionFuture作为其实现类,继承Future并允许干预任务生命周期,适用于有依赖关系的任务流程,如用户信息获取和后续的数据聚合操作。
摘要由CSDN通过智能技术生成

java可以满足多任务之间的依赖协作关系,在java1.8新增了一种新的方式,主要涉及CompletionStage。

1. 概述

支持任务异步处理,进行任务编排,满足多任务之间的依赖协作关系。例如之前需要用callback,现在定义依赖关系。

2. 详情

代表一个异步的阶段,当一个CompletionStage完成后去执行另一个行为或计算。一个阶段正常结束后,可以顺序触发某些其他的依赖阶段。根据使用场景,接口定义了几组行为。

行为之一:使用Function、Comsumer、Runnable作为阶段行为的表现方式,依据上一阶段正常结束的结果是否作为下一阶段参数等因素来决定,如方法名中包含apply, accept, or run。注意:上一阶段必须正常结束,否则不会触发下一阶段。

行为之一:支持多种触发阶段行为的方式,如一个单独的阶段结束后(方法名包含then)、两个阶段都结束后(方法名包含both)、两个阶段中任一结束后(方法名包含either)。注意:上一阶段必须正常结束,否则不会触发下一阶段。

行为之一:依赖阶段的触发行为,不保证明确的顺序。同步执行、异步执行、自定义executor的异步执行。

行为之一:关注上一阶段的结果,无论正常结束还是异常结束。

whenComplete 关注阶段的结果(包括正常结束结果和异常结果)。无法改变结果的引用。若通过get或join获取结果,是异常结果则抛出异常;若不调用get或join,即使是异常结果,也不会抛出异常。
handle 关注阶段的结果(包括正常结果和异常结果),而且可以返回新的正常结果,异常不会被抛出。

3. 实现类Completion

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值