【发布时间】:2014-12-01 14:34:31
【问题描述】:
对不起,我有点困惑,但我有点困惑,需要一些并发方面的帮助。
如果我在一个类中有一个线程池,它每 10 秒计算一次值,例如这样
private final ScheduledExecutorService executorService = Executors.newScheduledThreadPool(1);
executorService.schedule(callable, 10, TimeUnit.SECONDS);
我如何确定结果何时返回。结果准备好后,我需要处理地图并进行一些计算,然后删除/清空地图
我能想到的唯一方法是使用 Observable 界面,但我猜这不是正确的方法
谢谢
【问题讨论】:
-
为什么不在计划任务中启动后续操作?那将是最自然的方法。
-
看看
schedule()方法的返回类型? -
它返回一个预定的未来 但是 - 这基本上不会运行一次,它会随着数字的变化而连续运行,所以我只需要继续检查预定的 future.isdone环形?一旦完成是真的我有一个新的结果?
标签: java multithreading concurrency