类 UniFutureCombiner

java.lang.Object
cn.wjybxx.sequential.UniFutureCombiner

@NotThreadSafe public final class UniFutureCombiner extends Object
单线程化改动: 1.计数变量改为普通变量 2.Promise的默认实例为UniPromise
作者:
wjybxx date 2023/4/3
  • 构造器详细资料

    • UniFutureCombiner

      public UniFutureCombiner(Executor executor)
  • 方法详细资料

    • add

      public UniFutureCombiner add(IFuture<?> future)
    • futureCount

      public int futureCount()
      获取监听的future数量 注意:future计数是不去重的,一个future反复添加会反复计数
    • setAggregatePromise

      public UniFutureCombiner setAggregatePromise(IPromise<Object> aggregatePromise)
      设置接收结果的Promise 如果在执行操作前没有指定Promise,将创建Promise实例。
      返回:
      this
    • clear

      public void clear()
      重置状态,使得可以重新添加future和选择
    • anyOf

      public IPromise<Object> anyOf()
      返回的promise在任意future进入完成状态时进入完成状态 返回的promise与首个future的结果相同
    • selectN

      public IPromise<Object> selectN(int successRequire, boolean failFast)
      要求所有的future都成功时才进入成功状态; 任意任务失败,最终结果都表现为失败
      参数:
      failFast - 是否在不满足条件时立即失败
    • selectAll

      public IPromise<Object> selectAll()
      要求所有的future都成功时才进入成功状态 一旦有任务失败则立即失败
    • selectAll

      public IPromise<Object> selectAll(boolean failFast)
      要求所有的future都成功时才进入成功状态; 任意任务失败,最终结果都表现为失败
      参数:
      failFast - 是否在不满足条件时立即失败
    • addAll

      public UniFutureCombiner addAll(IFuture<?>... futures)
    • addAll

      public UniFutureCombiner addAll(Collection<? extends IFuture<?>> futures)