1

我正在使用 ExecutorService 来安排将来要执行的任务。在看到一些“奇怪”的行为之后,我的 Callable 在通过将 Callable 提交到 ExecutorService 池返回的 Future 对象上调用 get() 之前被执行,我阅读了一些文档,发现提交的任务将在它之间执行提交或最迟在 Future 对象上调用 get() 时提交。

我的问题 - 是否有任何类允许将 Callables 提交给它并且仅在调用 get() 时才执行?在这一点上,似乎只是自己管理可调用对象并在我准备好执行它们时自己调用 call() 似乎可以完成我想要的,但我想确保已经没有服务实现了这一点。

简而言之,是否有任何替代 ExecutorService 可以让我控制何时调用提交给它的 Callables?注意 - 我希望它们调用的未来时间是可变的,并且未确定,因为我可能决定不调用它们,因此 ScheduledExecutorService 池不会在这里工作。

非常感谢!

4

1 回答 1

2

听起来您真的想使用 aQueue<Callable>而只是轮询队列中的任务。

这样,您可以提交任意数量的任务,并按照您的意愿执行它们 - 一项一项。

于 2012-11-18T21:05:18.460 回答