Интерфейс java.util.concurrent.ScheduledExecutorService является подынтерфейсом интерфейса ExecutorService и поддерживает будущее и / или периодическое выполнение задач.
ScheduledExecutorService Методы
Sr.No. | Метод и описание |
---|---|
1 |
Расписание <V> ScheduledFuture <V> (вызываемое <V>, длительная задержка, единица времени) Создает и выполняет ScheduledFuture, которое становится активным после заданной задержки. |
2 |
ScheduledFuture <?> Schedule (команда Runnable, длительная задержка, единица времени) Создает и выполняет одноразовое действие, которое становится активным после заданной задержки. |
3 |
ScheduledFuture <?> ScheduleAtFixedRate (команда Runnable, длинный initialDelay, длительный период, единица времени) Создает и выполняет периодическое действие, которое становится активным сначала после заданной начальной задержки, а затем с заданным периодом; то есть выполнение начнется после initialDelay, затем initialDelay + period, затем initialDelay + 2 * period и так далее. |
4 |
ScheduledFuture <?> ScheduleWithFixedDelay (команда Runnable, long initialDelay, длинная задержка, единица времени) Создает и выполняет периодическое действие, которое становится активным в первую очередь после заданной начальной задержки, а затем с заданной задержкой между прекращением одного выполнения и началом следующего. |
Расписание <V> ScheduledFuture <V> (вызываемое <V>, длительная задержка, единица времени)
Создает и выполняет ScheduledFuture, которое становится активным после заданной задержки.
ScheduledFuture <?> Schedule (команда Runnable, длительная задержка, единица времени)
Создает и выполняет одноразовое действие, которое становится активным после заданной задержки.
ScheduledFuture <?> ScheduleAtFixedRate (команда Runnable, длинный initialDelay, длительный период, единица времени)
Создает и выполняет периодическое действие, которое становится активным сначала после заданной начальной задержки, а затем с заданным периодом; то есть выполнение начнется после initialDelay, затем initialDelay + period, затем initialDelay + 2 * period и так далее.
ScheduledFuture <?> ScheduleWithFixedDelay (команда Runnable, long initialDelay, длинная задержка, единица времени)
Создает и выполняет периодическое действие, которое становится активным в первую очередь после заданной начальной задержки, а затем с заданной задержкой между прекращением одного выполнения и началом следующего.
пример
Следующая программа TestThread показывает использование интерфейса ScheduledExecutorService в поточной среде.
import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; public class TestThread { public static void main(final String[] arguments) throws InterruptedException { final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); final ScheduledFuture<?> beepHandler = scheduler.scheduleAtFixedRate(new BeepTask(), 2, 2, TimeUnit.SECONDS); scheduler.schedule(new Runnable() { @Override public void run() { beepHandler.cancel(true); scheduler.shutdown(); } }, 10, TimeUnit.SECONDS); } static class BeepTask implements Runnable { public void run() { System.out.println("beep"); } } }
Это даст следующий результат.