3 回答
TA贡献1909条经验 获得超7个赞
您可以使用在回调函数中调用的 :FutureTask
final FutureTask<Object> ft = new FutureTask<Object>(() -> {}, new Object());
final Function<Boolean, ? extends Class<Void>> functionCallback = (Boolean t) -> {
if(t) {
plugin.setIsInstalled(Boolean.TRUE);
ft.run();
}
return Void.TYPE;
};
foo.install(plugin,functionCallback);
ft.get();
if(plugin.getIsInstalled().getValue())
return "done";
else
return "not done";
Future.get等到调用该方法,您还可以使用接受超时的 -method,以便在耗时过长时可以对此做出反应。runget
TA贡献1951条经验 获得超3个赞
可以使用在函数运行时释放的 或 。
CountDownLatchReentrantLock您可以返回 a,您可以按如下方式使用结果
foo#installCompletableFuture
CompletableFuture<Integer> future = CompletableFuture.supplyAsync(() -> 1);
future.thenAccept((v) -> System.out.println("v = " + v));函数本身有一个方法,您可以使用该方法在 post 运行所需的任何内容。
andThenapply
添加回答
举报
