CompletableFuture的whenComplete注册的函数具体由谁执行呢?
一般而言,这要看注册时任务的状态。如果注册时任务还没有结束,则注册的函数会由执行任务的线程执行,在该线程执行完任务后执行注册的函数;如果注册时任务已经结束了,则由当前线程(即调用注册函数的线程)执行。
如果不希望当前线程执行,避免可能的同步阻塞,可以使用其他两个异步注册方法:
public CompletableFuture<T> whenCompleteAsync( BiConsumer<? super T, ? super Throwable> action) public CompletableFuture<T> whenCompleteAsync( BiConsumer<? super T, ? super Throwable> action, Executor executor)#函数式编程##java原理#
Java面试专辑 文章被收录于专栏
帮您起飞,助您着陆心仪大厂。