java.lang.Object
cn.wjybxx.concurrent.JDKFutureCombiner
在调用选择方法之前,你可以添加任意的
CompletableFuture以进行监听。
调用任意的选择方法后,当前combiner无法继续选择(理论上可以做到支持,但暂时还无需求 -- 主要还是开销大)。- 作者:
- wjybxx date 2023/4/12
-
构造器概要
构造器 -
方法概要
修饰符和类型方法说明add(CompletionStage<?> future) addAll(Collection<? extends CompletionStage<?>> futures) addAll(CompletionStage<?>... futures) anyOf()返回的promise在任意future进入完成状态时进入完成状态voidclear()重置状态,使得可以重新添加future和选择int获取监听的future数量 注意:future计数是不去重的,一个future反复添加会反复计数要求所有的future都成功时才进入成功状态 一旦有任务失败则立即失败selectAll(boolean failFast) 要求所有的future都成功时才进入成功状态; 任意任务失败,最终结果都表现为失败selectN(int successRequire, boolean failFast) 成功N个触发成功 如果触发失败,只随机记录一个Future的异常信息,而不记录所有的异常信息setAggregatePromise(CompletableFuture<Object> aggregatePromise) 设置接收结果的Promise 如果在执行操作前没有指定Promise,将创建Promise实例。
-
构造器详细资料
-
JDKFutureCombiner
public JDKFutureCombiner()
-
-
方法详细资料
-
add
-
addAll
-
addAll
-
futureCount
public int futureCount()获取监听的future数量 注意:future计数是不去重的,一个future反复添加会反复计数 -
setAggregatePromise
设置接收结果的Promise 如果在执行操作前没有指定Promise,将创建Promise实例。- 返回:
- this
-
clear
public void clear()重置状态,使得可以重新添加future和选择 -
anyOf
返回的promise在任意future进入完成状态时进入完成状态 -
selectN
成功N个触发成功 如果触发失败,只随机记录一个Future的异常信息,而不记录所有的异常信息1.如果require等于【0】,则必定会成功。 2.如果require大于监听的future数量,必定会失败。 3.如果require小于监听的future数量,当成功任务数达到期望时触发成功。
如果lazy为false,则满足成功/失败条件时立即触发完成; 如果lazy为true,则等待所有任务完成之后才触发成功或失败。
- 参数:
successRequire- 期望成成功的任务数failFast- 是否在不满足条件时立即失败
-
selectAll
要求所有的future都成功时才进入成功状态 一旦有任务失败则立即失败 -
selectAll
要求所有的future都成功时才进入成功状态; 任意任务失败,最终结果都表现为失败- 参数:
failFast- 是否在不满足条件时立即失败
-