java ScheduledThreadPoolExecutor更改任务的计时

java ScheduledThreadPoolExecutor更改任务的计时,java,Java,我需要更改ScheduledThreadPoolExecutor的runnig任务的执行时间 我有点像 executor.schedule(new Runnable() {blablal},10,TimeUnit.SECONDS); synchronized(list) { Runnable a = new Runnable(){aaaa; list.remove(a)}; executor.schedule(a,10,TimeUnit.SECONDS); list.a

我需要更改ScheduledThreadPoolExecutor的runnig任务的执行时间

我有点像

executor.schedule(new Runnable() {blablal},10,TimeUnit.SECONDS);
synchronized(list) {
    Runnable a = new Runnable(){aaaa; list.remove(a)};
    executor.schedule(a,10,TimeUnit.SECONDS);
    list.add(a);
}
在登录阶段,我希望为该用户选择所有任务并执行一次

无法更改ScheduledFuture的执行时间,对吗

所以我最好的选择是做一些

executor.schedule(new Runnable() {blablal},10,TimeUnit.SECONDS);
synchronized(list) {
    Runnable a = new Runnable(){aaaa; list.remove(a)};
    executor.schedule(a,10,TimeUnit.SECONDS);
    list.add(a);
}
在登录时

synchronize(list) {
    for (Runnable a : list) 
        a.run();
}
我说得对吗

没有其他更好的选择,所以我可以避免所有这些同步


可能是更改ScheduledFuture的超时时间的一种直接方法

未来
保留一个句柄,当您在上计划某项内容时返回该句柄。您不必试图更改执行时间,而是可以更改未来并重新安排它。

保留一个句柄,该句柄位于
未来
上,当您在上安排某些内容时返回。与其试图改变执行时间,不如考虑未来并重新安排它。

那么,您只需要延迟执行任务吗?或者你需要定期执行你的任务?那么,你只需要延迟执行你的任务?或者您是否需要定期执行任务?