gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-30 20:00:22 24 4
gpt4 key购买 nike

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

最佳答案

您不能安排 Callable 定期执行,因为不清楚如何从这样的执行中返回结果。

如果您有自己的方法来返回结果(例如,将结果放入队列),您可以将 Callable 包装到 Runnable 中并实现您的方法:

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

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

关于java - 如何在java中使用ScheduledExecutorService以固定间隔调用Callable实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5102519/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com