我的问题是如何使用Completable Future。

我有一个实现Callable的类。

public class Executor implements Callable<Collection>

较早用于-
service.submit(collectorService);

这将返回Future<Collection>。但是,我们不想再使用future了,需要CompletableFuture。一种想法是,我们不需要使用CompletableFuture进行轮询,也不必等待和阻止它,直到它准备就绪为止。

因此,当isDone()线程完成时,我将如何使用可完成的Future并调用一个函数说callable

最佳答案

给定CompletableFuture<T> f,您可以使用以下命令启动同步或异步任务以在完成时运行:

f.thenApply(result -> isDone(result));      // sync callback
f.thenApplyAsync(result -> isDone(result)); // async callback

...或者,如果您不需要结果:
f.thenRun(() -> isDone());
f.thenRunAsync(() -> isDone());

关于Java 8可完成的 future ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28943036/

10-12 03:57