如何知道ScheduledExecutorService何时完成

时间:2014-10-07 08:08:59

标签: java multithreading concurrency

很抱歉我有些困惑,但我有点困惑,需要一些并发的帮助。

如果我在一个类中有一个线程池,它每10秒计算一次这样的值,比如这个

private final ScheduledExecutorService executorService = Executors.newScheduledThreadPool(1);
executorService.schedule(callable, 10, TimeUnit.SECONDS);

如何确定结果何时返回。结果准备好后,我需要处理地图并进行一些计算,然后删除/清空地图

我能想到的唯一方法是使用Observable接口,但我猜这不是正确的方法

由于

1 个答案:

答案 0 :(得分:1)

您可以使用ScheduledFuture并调用isDone(因为ScheduledFuture扩展了Future),就像这样

ScheduledFuture schedule = executorService.schedule(callable, 10, TimeUnit.SECONDS);
schedule.isDone()