当前位置: 首页 > 面试题库 >

如何在Java中使用ScheduledExecutorService以固定间隔调用Callable实现?

陶飞英
2023-03-14
问题内容

ScheduledExecutorService具有诸如scheduleAtFixedRate(Runnable命令,long
initialDelay,long
period,TimeUnit单位)之类的方法,以固定间隔调用Runnable类。我希望我的线程在执行后返回一些值。所以我实现了Callable接口。我找不到用于定期调用我的Callable类的等效方法。还有其他方法可以实现吗?如果Java无法提供此功能,那么该决定背后的原因是什么?请告诉我。谢谢。


问题答案:

您无法安排Callable定期执行,因为尚不清楚如何从此类执行中返回结果。

如果你有自己的方法来返回结果(例如,将结果放进一个队列中),你可以用CallableRunnable和实现的方法:

final BlockingQueue<Result> q = new ArrayBlockingQueue<Result>();
final Callable<Result> action = ...;

s.scheduleAtFixedRate(new Runnable() {
    public void run() {
        q.put(action.call());
    }
}, ...);


 类似资料:
  • 问题内容: 我想每天早上5点执行某项任务。因此,我决定使用它,但到目前为止,我已经看到了一些示例,这些示例显示了如何每隔几分钟运行一次任务。 而且我找不到任何示例来说明如何每天在特定时间(上午5点)每天运行任务,并且还考虑了夏时制的事实- 以下是我的代码,每15分钟运行一次- 有什么办法,我可以考虑兼顾夏时制的事实,安排一个任务在每天的凌晨5点运行? 而且对于这个还是更好? 问题答案: 与当前的J

  • 本文向大家介绍如何在pytest中使用固定装置?,包括了如何在pytest中使用固定装置?的使用技巧和注意事项,需要的朋友参考一下 固定装置是应在pytest中与之关联的每个测试方法之前执行的方法。Pytest是python中的测试框架。要安装pytest,我们需要使用命令pip install pytest。安装后,我们可以通过pytest –version命令验证是否已安装python 。py

  • 是否可以在特定的时间调用java中的方法?例如,我有一段这样的代码: 如何在java中实现这一点?

  • 问题内容: 我需要每5分钟创建一个ajax调用。我要下面的代码。有人可以告诉我如何修改此代码以每5分钟运行该ajax吗? 问题答案: 在最简单的级别上,将AJAX调用放入函数中,然后创建一个间隔:

  • 问题内容: 是否可以在特定时间在Java中调用方法?例如,我有一段这样的代码: 如何在Java中完成此操作? 问题答案: 使用java.util.Timer类,您可以创建计时器并将其计划为在特定时间运行。 下面是示例:

  • 我目前正在为我的React本机应用程序实施SSL证书固定。 我找到了一个很好的答案,详细解释了为和存档此文件的步骤 但不幸的是,解决方案只能在使用API发出请求的情况下工作,我正在尝试找到一个还包括API的解决方案