具有固定延迟的更改计划(Java)

具有固定延迟的更改计划(Java),java,multithreading,Java,Multithreading,我正在创建的库要求用户在对象的构造函数中输入延迟。我想让他们不必在构造函数中输入延迟,我不想使用多个构造函数,延迟被设置为默认值,以后可以通过方法更改。如果我稍后通过另一个方法启动线程,这将很容易,但我希望线程在构造函数中启动 有没有办法取消正在执行的runnable或更改其延迟 示例代码: public ExampleClass(Object value1, Object value2) { executor.scheduleWithFixedDelay(new Task(), 0,

我正在创建的库要求用户在对象的构造函数中输入延迟。我想让他们不必在构造函数中输入延迟,我不想使用多个构造函数,延迟被设置为默认值,以后可以通过方法更改。如果我稍后通过另一个方法启动线程,这将很容易,但我希望线程在构造函数中启动


有没有办法取消正在执行的runnable或更改其延迟

示例代码:

public ExampleClass(Object value1, Object value2) {
    executor.scheduleWithFixedDelay(new Task(), 0, 100, TimeUnit.MILLISECONDS);
}

public void cangeDelay(int delay) {
    //what to do here?
}

private class Task implements Runnable {
    public void run() {
        //do something
    }
}

scheduleWithFixedDelay返回一个未来,f。您可以调用f.cancel,然后以不同的速率再次安排任务。

您真正想解决的问题是什么?当你说,我不想使用多个构造函数。这让我觉得您可能在寻找:有没有办法取消正在执行的runnable或更改其延迟?Runnable没有延迟。如果您的runnable有一个,那是因为您添加了它。@jameslarge我希望它易于使用,默认值将是99%的时间所需的值,但我也希望它是可配置的。可能的重复项