接口的使用
cn.wjybxx.concurrent.IPromise
使用IPromise的程序包
-
cn.wjybxx.concurrent中IPromise的使用
声明为IPromise的cn.wjybxx.concurrent中的字段返回IPromise的cn.wjybxx.concurrent中的方法修饰符和类型方法说明FutureCombiner.anyOf()返回的promise在任意future进入完成状态时进入完成状态 返回的promise与首个完成future的结果相同(不准确)static <V> IPromise<V> FutureUtils.fromJDKFuture(CompletionStage<V> stage) IFutureTask.future()用于获取结果的句柄 注意:返回给用户时应当转为IFuture类型。PromiseTask.future()获取任务绑的Promise - 允许子类重写返回值类型<T> IPromise<T> AbstractEventLoop.newPromise()<T> IPromise<T> AbstractEventLoopGroup.newPromise()static <V> IPromise<V> FutureUtils.newPromise()static <V> IPromise<V> FutureUtils.newPromise(Executor executor) default <T> IPromise<T> IExecutorService.newPromise()创建一个promise以用于任务调度 如果当前Executor是SingleThreadExecutor,返回的future将禁止在当前EventLoop上执行阻塞操作。FutureCombiner.selectAll()要求所有的future都成功时才进入成功状态 一旦有任务失败则立即失败FutureCombiner.selectAll(boolean failFast) 要求所有的future都成功时才进入成功状态; 任意任务失败,最终结果都表现为失败FutureCombiner.selectN(int successRequire, boolean failFast) 成功N个触发成功 如果触发失败,只随机记录一个Future的异常信息,而不记录所有的异常信息static <V> IPromise<V> FutureUtils.toEventLoopPromise(EventLoop eventLoop, ICompletionStage<V> input) 参数类型为IPromise的cn.wjybxx.concurrent中的方法修饰符和类型方法说明default void任务在添加到Executor之前进行绑定static PromiseTask<?> static PromiseTask<?> PromiseTask.ofAction(Consumer<? super IContext> action, IContext ctx, int options, IPromise<?> promise) static <V> PromiseTask<V> PromiseTask.ofBuilder(TaskBuilder<V> builder, IPromise<V> promise) static <V> PromiseTask<V> PromiseTask.ofFunction(Callable<? extends V> action, IContext ctx, int options, IPromise<V> promise) static <V> PromiseTask<V> PromiseTask.ofFunction(Function<? super IContext, ? extends V> action, IContext ctx, int options, IPromise<V> promise) FutureCombiner.setAggregatePromise(IPromise<Object> aggregatePromise) 设置接收结果的Promise 如果在执行操作前没有指定Promise,将创建Promise实例。static <V> voidFutureUtils.setFuture(IPromise<? super V> output, ICompletionStage<V> input) static <V> voidFutureUtils.setFuture(IPromise<? super V> output, CompletionStage<V> input) static <V> voidFutureUtils.setFutureAsync(Executor executor, IPromise<? super V> output, ICompletionStage<V> input) static <V> voidFutureUtils.setFutureAsync(Executor executor, IPromise<? super V> output, ICompletionStage<V> input, int options) static <V> voidFutureUtils.setFutureAsync(Executor executor, IPromise<? super V> output, CompletionStage<V> input) default void任务开始前调用 1. start和update是连续执行的。default void任务结束时调用 1.只有在成功执行TimeSharingTask.start(IContext, IPromise)的情况下才会调用 2.会在start所在的executor调用 -- 如果目标executor已关闭则不会执行。protected static voidPromiseTask.trySetCancelled(IPromise<?> promise, IContext ctx) protected static voidPromiseTask.trySetCancelled(IPromise<?> promise, IContext ctx, int def) void单步执行一次。参数类型为IPromise的cn.wjybxx.concurrent中的构造器限定符构造器说明PromiseTask(TaskBuilder<V> builder, IPromise<V> promise) PromiseTask(Object task, IContext ctx, int options, IPromise<V> promise) PromiseTask(Object task, IContext ctx, int options, IPromise<V> promise, int taskType) -
cn.wjybxx.sequential中IPromise的使用
返回IPromise的cn.wjybxx.sequential中的方法修饰符和类型方法说明UniFutureCombiner.anyOf()返回的promise在任意future进入完成状态时进入完成状态 返回的promise与首个future的结果相同UniFutureCombiner.selectAll()要求所有的future都成功时才进入成功状态 一旦有任务失败则立即失败UniFutureCombiner.selectAll(boolean failFast) 要求所有的future都成功时才进入成功状态; 任意任务失败,最终结果都表现为失败UniFutureCombiner.selectN(int successRequire, boolean failFast) 要求所有的future都成功时才进入成功状态; 任意任务失败,最终结果都表现为失败参数类型为IPromise的cn.wjybxx.sequential中的方法修饰符和类型方法说明UniFutureCombiner.setAggregatePromise(IPromise<Object> aggregatePromise) 设置接收结果的Promise 如果在执行操作前没有指定Promise,将创建Promise实例。