java.lang.Object
cn.wjybxx.concurrent.FutureUtils
- 作者:
- wjybxx date 2023/4/9
-
构造器概要
构造器 -
方法概要
修饰符和类型方法说明static IFuture<?> static IFuture<?> static booleanawait(CompletableFuture<?> future, long timeout, TimeUnit unit) static booleanawaitUninterruptedly(CompletableFuture<?> future, long timeout, TimeUnit unit) static <T> IFuture<T> static <V> IFuture<V> completedFuture(V result) static <V> IFuture<V> completedFuture(V result, Executor executor) static voidensureInEventLoop(SingleThreadExecutor eventLoop) static voidensureInEventLoop(SingleThreadExecutor eventLoop, String msg) static voidstatic voidstatic <V> IFuture<V> failedFuture(Throwable cause) static <V> IFuture<V> failedFuture(Throwable cause, Executor executor) static <V> IPromise<V> fromJDKFuture(CompletionStage<V> stage) static Throwablestatic ThrowablegetCause(CompletableFuture<?> future) static booleaninEventLoop(Executor executor) static FutureCombinerstatic JDKFutureCombinerstatic <V> IPromise<V> static <V> IPromise<V> newPromise(Executor executor) static cn.wjybxx.base.time.CachedTimeProvidernewTimeProvider(EventLoop eventLoop) static cn.wjybxx.base.time.CachedTimeProvidernewTimeProvider(EventLoop eventLoop, long curTime) 创建一个支持缓存的时间提供器,且可以多线程安全访问。static <V> voidsetFuture(IPromise<? super V> output, ICompletionStage<V> input) static <V> voidsetFuture(IPromise<? super V> output, CompletionStage<V> input) static <V> voidsetFuture(CompletableFuture<? super V> output, ICompletionStage<V> input) static <V> voidsetFuture(CompletableFuture<? super V> output, CompletionStage<V> input) static <V> voidsetFutureAsync(Executor executor, IPromise<? super V> output, ICompletionStage<V> input) static <V> voidsetFutureAsync(Executor executor, IPromise<? super V> output, ICompletionStage<V> input, int options) static <V> voidsetFutureAsync(Executor executor, IPromise<? super V> output, CompletionStage<V> input) static <V> voidsetFutureAsync(Executor executor, CompletableFuture<? super V> output, ICompletionStage<V> input) static <V> voidsetFutureAsync(Executor executor, CompletableFuture<? super V> output, ICompletionStage<V> input, int options) static <V> voidsetFutureAsync(Executor executor, CompletableFuture<? super V> output, CompletionStage<V> input) static <T> IFuture<T> submit(IExecutor executor, TaskBuilder<T> builder) static IFuture<?> submitAction(IExecutor executor, Runnable action, int options) static IFuture<?> submitAction(IExecutor executor, Consumer<? super IContext> task, IContext ctx, int options) static IFuture<?> submitAction(Executor executor, Runnable action) static IFuture<?> submitAction(Executor executor, Consumer<? super IContext> task, IContext ctx) static <V> IFuture<V> submitFunc(IExecutor executor, Callable<? extends V> task, int options) static <V> IFuture<V> submitFunc(IExecutor executor, Function<? super IContext, ? extends V> task, IContext ctx, int options) static <V> IFuture<V> submitFunc(Executor executor, Callable<? extends V> task) static <V> IFuture<V> submitFunc(Executor executor, Function<? super IContext, ? extends V> task, IContext ctx) static <T> IFuture<T> supplyAsync(Executor executor, Supplier<? extends T> supplier) static <V> IPromise<V> toEventLoopPromise(EventLoop eventLoop, ICompletionStage<V> input) static <V> CompletableFuture<V> toJDKFuture(ICompletionStage<V> stage) static ITaskstatic ITaskstatic <V> BiFunction<V, Throwable, V> 如果future失败则返回nullstatic ThrowableCompletableFuture总是使用CompletionException包装异常,我们需要找到原始异常
-
构造器详细资料
-
FutureUtils
public FutureUtils()
-
-
方法详细资料
-
treatExceptionAsNull
如果future失败则返回null -
unwrapCompletionException
CompletableFuture总是使用CompletionException包装异常,我们需要找到原始异常 -
getCause
-
getCause
-
fromJDKFuture
-
toJDKFuture
-
setFuture
-
setFuture
-
setFutureAsync
public static <V> void setFutureAsync(Executor executor, IPromise<? super V> output, ICompletionStage<V> input) -
setFutureAsync
public static <V> void setFutureAsync(Executor executor, IPromise<? super V> output, ICompletionStage<V> input, int options) -
setFutureAsync
public static <V> void setFutureAsync(Executor executor, IPromise<? super V> output, CompletionStage<V> input) -
setFuture
-
setFuture
-
setFutureAsync
public static <V> void setFutureAsync(Executor executor, CompletableFuture<? super V> output, CompletionStage<V> input) -
setFutureAsync
public static <V> void setFutureAsync(Executor executor, CompletableFuture<? super V> output, ICompletionStage<V> input) -
setFutureAsync
public static <V> void setFutureAsync(Executor executor, CompletableFuture<? super V> output, ICompletionStage<V> input, int options) -
toEventLoopPromise
-
await
public static boolean await(CompletableFuture<?> future, long timeout, TimeUnit unit) throws InterruptedException - 返回:
- 如果future在指定时间内进入了完成状态,则返回true
- 抛出:
InterruptedException
-
awaitUninterruptedly
public static boolean awaitUninterruptedly(CompletableFuture<?> future, long timeout, TimeUnit unit) - 返回:
- 如果future在指定时间内进入了完成状态,则返回true
-
newPromise
-
newPromise
-
completedFuture
-
completedFuture
-
failedFuture
-
failedFuture
-
newCombiner
-
newJdkCombiner
-
inEventLoop
-
ensureInEventLoop
-
ensureInEventLoop
-
newTimeProvider
- 另请参阅:
-
newTimeProvider
public static cn.wjybxx.base.time.CachedTimeProvider newTimeProvider(EventLoop eventLoop, long curTime) 创建一个支持缓存的时间提供器,且可以多线程安全访问。 你需要调用CachedTimeProvider.setTime(long)更新时间值,且应该只有一个线程调用更新方法。- 参数:
eventLoop- 负责更新时间的线程curTime- 初始时间- 返回:
- timeProvider - threadSafe
-
submit
-
submitFunc
-
submitFunc
-
submitFunc
-
submitFunc
-
submitAction
-
submitAction
-
submitAction
-
submitAction
-
execute
-
execute
-
callAsync
-
supplyAsync
-
anyOf
-
allOf
-
toTask
-
toTask
-