Java 中 delay 任务之后如何异步回调

2021-06-14 23:09:00 +08:00
 LightingX

先说说需求:我需要提交一个延时异步任务,这个延时异步任务执行完之后,再执行一个回调方法。

你可以理解为我想要使用 ScheduledExecutorService 的 schedule 方法定时调度之后,再使用 CompletableFuture 的 thenApplyAsync 方法回调,可 schedule 方法返回的不是 CompletableFuture,可以转换吗?或者有其他办法吗?

918 次点击
所在节点    问与答
2 条回复
hand515
2021-06-15 08:56:41 +08:00
public static void main(String[] args) throws ExecutionException, InterruptedException {
FutureTask<Integer> futureTask = new FutureTask<>(()->{
return 1;
});
ScheduledExecutorService service = Executors.newScheduledThreadPool(1);
service.schedule(futureTask,5, TimeUnit.SECONDS);
System.out.println(futureTask.get());
}
maninfog
2021-06-15 08:59:04 +08:00
咋感觉这种需求直接 Thread.sleep()没啥不好的呢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/783361

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX