This question already has answers here:
ScheduledExecutorService - Check if scheduled task has already been completed
(2个答案)
5年前关闭。
对不起,我有些困惑,但是我有点困惑,需要一些并发协助。
如果我在一个类中有一个线程池,该线程池每10秒计算一次这样的值
如何确定何时返回结果。结果准备好后,我需要处理地图并进行一些计算,然后删除/清空地图
我能想到的唯一方法是使用用户可观察的界面,但我猜这不是正确的方法
谢谢
(2个答案)
5年前关闭。
对不起,我有些困惑,但是我有点困惑,需要一些并发协助。
如果我在一个类中有一个线程池,该线程池每10秒计算一次这样的值
private final ScheduledExecutorService executorService = Executors.newScheduledThreadPool(1);
executorService.schedule(callable, 10, TimeUnit.SECONDS);
如何确定何时返回结果。结果准备好后,我需要处理地图并进行一些计算,然后删除/清空地图
我能想到的唯一方法是使用用户可观察的界面,但我猜这不是正确的方法
谢谢
最佳答案
您可以像这样使用ScheduledFuture并调用isDone(因为ScheduledFuture扩展了Future)
ScheduledFuture schedule = executorService.schedule(callable, 10, TimeUnit.SECONDS);
schedule.isDone()
10-06 06:56