Java的未来

时间:2019-03-21 17:29:02

标签: java future

我有一个方法doAsync,它使我返回了未来。
我想在将来开始使用此方法,所以我正在使用ScheduledExecutorService

我希望有一个FuturerunAsync()方法完成运行后完成。

基本上,我的代码如下:

public Future scheduleAsyncTask(int delay){
    return this.scheduledExecutorService.schedule(()->runAsync(),delay,TimeUnit.MILLISECONDS); 
}

这不能正常工作,因为将来的返回将在计划任务开始运行时完成,而不是在完成任务时完成。

我该如何解决我的问题?

1 个答案:

答案 0 :(得分:0)

return scheduler.schedule(() -> runAsync().get(delay, TimeUnit.MILLISECONDS), delay, TimeUnit.MILLISECONDS);