Я хочу выполнить некоторые временные задачи, используя ScheduledExecutorService
, но временные интервалы меняются. Я пытаюсь перенести задачу, прежде чем он закончил:Безопасно ли перенести задачу перед ее выполнением при использовании ScheduledExecutorService?
import java.io.IOException;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class Test {
public static ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(1);
public static int interval = 1;
public static void main(String[] args) throws IOException {
Runnable runnable = new Runnable() {
@Override
public void run() {
System.out.println(System.currentTimeMillis()/1000);
interval += 1;
scheduledExecutorService.schedule(this, interval, TimeUnit.SECONDS);
}
};
scheduledExecutorService.schedule(runnable, interval, TimeUnit.SECONDS);
}
}
Но я никогда не нашел никого, делать временные задачи, используя ScheduledExecutorService
как это, интересно ли это безопасно.
Как написано, этот код ничего не сделает. –
Даже если вы запустите «runnable», то, что у вас здесь, не требует перенастройки задачи, у него есть график каждой задачи, когда он заканчивается. Что вы на самом деле пытаетесь сделать здесь? – azurefrog
@azurefrog, я хочу запустить задачу синхронизации после 'delay1', когда задача будет выполнена, я заново запустим задачу после delay2, а' delay1' не будет равно 'delay2'. Так продолжайте. – expoter