【发布时间】:2016-07-29 22:24:40
【问题描述】:
我正在使用 openejb 和异步 EJB。我有很多期货,想知道期货上的一个是否需要太多时间(所以我可以追踪它并最终取消它)。问题是要知道未来 si 运行多长时间,我需要知道它什么时候开始。 Future 接口让我知道 Future 是完成还是取消,但如果不是,我不知道它是在运行还是在等待池中的线程。 是否可以获得 Future 状态(正在运行/未开始)?
谢谢
【问题讨论】:
-
似乎
Future不允许这样做。您始终可以让任务将自身添加到集合中,然后检查集合以查看正在运行的任务。 -
是的,但我想要一个通用的解决方案
-
似乎这种类似标志的系统是轻松实现此行为的唯一方法。您的下一个选择是扩展
Future接口以将标志添加到每个未来。但这将要求您与当前正在使用的任何执行程序混在一起,以便让执行程序向您传递一个包含标志的Future实现的实例 -
您能否显示创建任务和使用
Future对象的代码?我会尝试写一个适合您需求的答案
标签: java asynchronous future