先说说需求:我需要提交一个延时异步任务,这个延时异步任务执行完之后,再执行一个回调方法。
你可以理解为我想要使用 ScheduledExecutorService 的 schedule 方法定时调度之后,再使用 CompletableFuture 的 thenApplyAsync 方法回调,可 schedule 方法返回的不是 CompletableFuture,可以转换吗?或者有其他办法吗?
1
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()); } |
2
maninfog 2021-06-15 08:59:04 +08:00 via iPhone
咋感觉这种需求直接 Thread.sleep()没啥不好的呢
|