gpt4 book ai didi

java - 以 5 秒、4 秒、3 秒的间隔调用函数

转载 作者:行者123 更新时间:2023-12-01 10:34:55 25 4
gpt4 key购买 nike

我有一个函数foo()

我想每 5 秒调用一次 foo() ,并且在 foo() 调用“X”次之后每 4 秒调用一次。每 3 秒再执行一次“X”调用 foo(),直到每秒调用 foo。

我还需要能够随时停止调用 foo。

我浏览了其他 Stack Overflow 帖子,但没有找到任何可以让我动态更改调用间隔的内容。

我能做什么?

最佳答案

看看 Java 中的 TimerTimerTask 类。您可以安排 TimerTask 并让任务决定下次安排的时间。任务自行安排。

这样您就可以动态决定下一个执行间隔。

import java.util.Timer;
import java.util.TimerTask;

public class Main {

public interface FooService {
public void foo();
}

public static class DelayCalculator {
public long nextTime() { // ... };
}
public static class FooTask extends TimerTask {

FooService fooSvc;

public FooTask(FooService foos) {
fooSvc = foos;
}

@Override
public void run() {
fooSvc.foo();

TIMER.schedule(new FooTask(fooSvc), DELAYCALC.nextTime());
}
}

private static final Timer TIMER = new Timer();

private static final DelayCalculator DELAYCALC = new DelayCalculator();

public static void main(String[] args) {
FooTask fooT = new FooTask(() -> System.out.println("Foo"));
TIMER.schedule(fooT, 0);
}
}

关于java - 以 5 秒、4 秒、3 秒的间隔调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34822248/

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