Класс ScheduledThreadPoolExecutor

Все реализованные интерфейсы:
Executor, ExecutorService, ScheduledExecutorService
public class ScheduledThreadPoolExecutor
extends ThreadPoolExecutor
implements ScheduledExecutorService

A ThreadPoolExecutor который дополнительно может планировать выполнение команд после заданной задержки или периодическое выполнение. Этот класс предпочтительнее Timer когда требуется несколько рабочих потоков или необходима дополнительная гибкость или возможности ThreadPoolExecutor (который этот класс расширяет).

Задачи с задержкой выполняются не раньше, чем они разрешены, но без каких-либо гарантий реального времени о том, когда, после разрешения, они начнутся. Задачи, запланированные на одинаковое время выполнения, разрешаются в порядке очереди FIFO (первый пришёл, первый обслужен) в порядке их поступления.

Если задача, отправленная на выполнение, отменяется до ее запуска, выполнение подавляется. По умолчанию такая отменённая задача не удаляется автоматически из очереди задач до истечения её задержки. Хотя это позволяет проводить дальнейший анализ и мониторинг, это может также привести к неограниченному хранению отменённых задач. Чтобы избежать этого, используйте setRemoveOnCancelPolicy(boolean), чтобы задачи удалялись немедленно из очереди задач при отмене.

Последовательные исполнения периодической задачи, запланированной с помощью scheduleAtFixedRate или scheduleWithFixedDelay, не перекрываются. Хотя разные исполнения могут выполняться в разных потоках, результаты предыдущих исполнений happen-before результатов последующих.

Хотя этот класс унаследован от ThreadPoolExecutor, некоторые унаследованные методы настройки не полезны для него. В частности, поскольку он действует как пул фиксированного размера, использующий corePoolSize потоков и неограниченную очередь, корректировки maximumPoolSize не оказывают полезного эффекта. Кроме того, почти никогда не стоит устанавливать corePoolSize в ноль или использовать allowCoreThreadTimeOut, потому что это может оставить пул без потоков для обработки задач, когда они станут готовыми к выполнению.

Как и ThreadPoolExecutor, если не указано иное, этот класс использует Executors.defaultThreadFactory() в качестве фабрики потоков по умолчанию и ThreadPoolExecutor.AbortPolicy в качестве обработчика отменённых задач по умолчанию.

Примечания по расширению: Этот класс переопределяет методы execute и submit для генерации внутренних объектов ScheduledFuture для управления задержками и планированием каждой задачи. Для сохранения функциональности любые дальнейшие переопределения этих методов в подклассах должны вызывать версии суперкласса, что фактически отключает дополнительную настройку задач. Однако этот класс предоставляет альтернативный защищённый метод расширения decorateTask (по одной версии для Runnable и Callable ), который можно использовать для настройки конкретных типов задач, используемых для выполнения команд, введённых через execute, submit, schedule, scheduleAtFixedRate, и scheduleWithFixedDelay. По умолчанию ScheduledThreadPoolExecutor использует тип задачи, расширяющий FutureTask. Однако это можно изменить или заменить, используя подклассы в форме:

public class CustomScheduledExecutor extends ScheduledThreadPoolExecutor {

   static class CustomTask<V> implements RunnableScheduledFuture<V> { ... }

   protected <V> RunnableScheduledFuture<V> decorateTask(
                Runnable r, RunnableScheduledFuture<V> task) {
       return new CustomTask<V>(r, task);
   }

   protected <V> RunnableScheduledFuture<V> decorateTask(
                Callable<V> c, RunnableScheduledFuture<V> task) {
       return new CustomTask<V>(c, task);
   }
   // ... add constructors, etc.
 }
С:
1.5

Вложенные классы

Вложенные классы/интерфейсы, объявленные в классе java.util.concurrent.ThreadPoolExecutor

ThreadPoolExecutor.AbortPolicy, ThreadPoolExecutor.CallerRunsPolicy, ThreadPoolExecutor.DiscardOldestPolicy, ThreadPoolExecutor.DiscardPolicy

Краткое описание конструкторов

Конструктор Описание
ScheduledThreadPoolExecutor​(int corePoolSize)

Создаёт новый ScheduledThreadPoolExecutor с заданным размером базового пула.

ScheduledThreadPoolExecutor​(int corePoolSize, RejectedExecutionHandler handler)

Создаёт новый ScheduledThreadPoolExecutor с заданными начальными параметрами.

ScheduledThreadPoolExecutor​(int corePoolSize, ThreadFactory threadFactory)

Создаёт новый ScheduledThreadPoolExecutor с заданными начальными параметрами.

ScheduledThreadPoolExecutor​(int corePoolSize, ThreadFactory threadFactory, RejectedExecutionHandler handler)

Создаёт новый ScheduledThreadPoolExecutor с заданными начальными параметрами.

Краткое описание методов

Модификатор и тип Метод Описание
protected <V> RunnableScheduledFuture<V> decorateTask​(Runnable runnable, RunnableScheduledFuture<V> task)

Изменяет или заменяет задачу, используемую для выполнения runnable.

protected <V> RunnableScheduledFuture<V> decorateTask​(Callable<V> callable, RunnableScheduledFuture<V> task)

Изменяет или заменяет задачу, используемую для выполнения callable.

void execute​(Runnable command)

Выполняет command без задержки.

boolean getContinueExistingPeriodicTasksAfterShutdownPolicy()

Получает политику относительно продолжения выполнения существующих периодических задач даже когда этот экзекутор был shutdown.

boolean getExecuteExistingDelayedTasksAfterShutdownPolicy()

Получает политику относительно выполнения существующих задач с задержкой даже когда этот экзекутор был shutdown.

BlockingQueue<Runnable> getQueue()

Возвращает очередь задач, используемую этим экзекутором.

boolean getRemoveOnCancelPolicy()

Получает политику относительно того, следует ли немедленно удалять отменённые задачи из очереди задач при отмене.

ScheduledFuture<?> schedule​(Runnable command, long delay, TimeUnit unit)

Отправляет однократную задачу, которая активируется после заданной задержки.

<V> ScheduledFuture<V> schedule​(Callable<V> callable, long delay, TimeUnit unit)

Отправляет однократную задачу с возвратом значения, которая активируется после заданной задержки.

ScheduledFuture<?> scheduleAtFixedRate​(Runnable command, long initialDelay, long period, TimeUnit unit)

Отправляет периодическое действие, которое активируется сначала после заданной начальной задержки и затем с заданным периодом; то есть, выполнения начнутся после initialDelay, затем initialDelay + period, затем initialDelay + 2 * period, и так далее.

ScheduledFuture<?> scheduleWithFixedDelay​(Runnable command, long initialDelay, long delay, TimeUnit unit)

Отправляет периодическое действие, которое активируется сначала после заданной начальной задержки, а затем с заданной задержкой между окончанием одного выполнения и началом следующего.

void setContinueExistingPeriodicTasksAfterShutdownPolicy​(boolean value)

Устанавливает политику относительно продолжения выполнения существующих периодических задач, даже когда этот экзекутор был shutdown.

void setExecuteExistingDelayedTasksAfterShutdownPolicy​(boolean value)

Устанавливает политику относительно выполнения существующих задач с задержкой, даже когда этот экзекутор был shutdown.

void setRemoveOnCancelPolicy​(boolean value)

Устанавливает политику относительно того, следует ли немедленно удалять отменённые задачи из очереди задач при отмене.

void shutdown()

Инициирует упорядоченное завершение, в котором выполняются ранее отправленные задачи, но новые задачи не принимаются.

List<Runnable> shutdownNow()

Пытается остановить все активно выполняемые задачи, останавливает обработку ожидающих задач и возвращает список задач, которые ожидали выполнения.

Future<?> submit​(Runnable task)

Отправляет задачу Runnable на выполнение и возвращает Future, представляющую эту задачу.

<T> Future<T> submit​(Runnable task, T result)

Отправляет задачу Runnable на выполнение и возвращает Future, представляющую эту задачу.

<T> Future<T> submit​(Callable<T> task)

Отправляет задачу с возвратом значения на выполнение и возвращает Future, представляющую ожидаемые результаты задачи.

Методы, объявленные в классе java.util.concurrent.ThreadPoolExecutor

afterExecute, allowCoreThreadTimeOut, allowsCoreThreadTimeOut, beforeExecute, finalize, getActiveCount, getCompletedTaskCount, getCorePoolSize, getKeepAliveTime, getLargestPoolSize, getMaximumPoolSize, getPoolSize, getRejectedExecutionHandler, getTaskCount, getThreadFactory, isTerminating, prestartAllCoreThreads, prestartCoreThread, purge, remove, setCorePoolSize, setKeepAliveTime, setMaximumPoolSize, setRejectedExecutionHandler, setThreadFactory, terminated, toString

Методы, объявленные в классе java.util.concurrent.AbstractExecutorService

newTaskFor, newTaskFor

Методы, объявленные в классе java.lang.Object

clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait

Методы, объявленные в интерфейсе java.util.concurrent.ExecutorService

awaitTermination, invokeAll, invokeAll, invokeAny, invokeAny, isShutdown, isTerminated

Конструкторы

ScheduledThreadPoolExecutor

public ScheduledThreadPoolExecutor(int corePoolSize)

Создаёт новый ScheduledThreadPoolExecutor с заданным минимальным количеством потоков.

Параметры:
corePoolSize - количество потоков, которые должны оставаться в пуле, даже если они бездействуют, если allowCoreThreadTimeOut не установлено
Исключения:
IllegalArgumentException - если corePoolSize < 0

ScheduledThreadPoolExecutor

public ScheduledThreadPoolExecutor(int corePoolSize,
                                   ThreadFactory threadFactory)

Создаёт новый ScheduledThreadPoolExecutor с заданными начальными параметрами.

Параметры:
corePoolSize - количество потоков, которые должны оставаться в пуле, даже если они бездействуют, если allowCoreThreadTimeOut не установлено
threadFactory - фабрика, используемая при создании нового потока исполнителем
Исключения:
IllegalArgumentException - если corePoolSize < 0
NullPointerException - если threadFactory равно null

ScheduledThreadPoolExecutor

public ScheduledThreadPoolExecutor(int corePoolSize,
                                   RejectedExecutionHandler handler)

Создаёт новый ScheduledThreadPoolExecutor с заданными начальными параметрами.

Параметры:
corePoolSize - количество потоков, которые должны оставаться в пуле, даже если они бездействуют, если allowCoreThreadTimeOut не установлено
handler - обработчик, используемый при блокировании выполнения, потому что предел потоков и вместимость очереди достигнуты
Исключения:
IllegalArgumentException - если corePoolSize < 0
NullPointerException - если handler равно null

ScheduledThreadPoolExecutor

public ScheduledThreadPoolExecutor(int corePoolSize,
                                   ThreadFactory threadFactory,
                                   RejectedExecutionHandler handler)

Создаёт новый ScheduledThreadPoolExecutor с заданными начальными параметрами.

Параметры:
corePoolSize - количество потоков, которые должны оставаться в пуле, даже если они бездействуют, если allowCoreThreadTimeOut не установлено
threadFactory - фабрика, используемая при создании нового потока исполнителем
handler - обработчик, используемый при блокировании выполнения, потому что предел потоков и вместимость очереди достигнуты
Исключения:
IllegalArgumentException - если corePoolSize < 0
NullPointerException - если threadFactory или handler равны null

Методы

decorateTask

protected <V> RunnableScheduledFuture<V> decorateTask(Runnable runnable,
                                                      RunnableScheduledFuture<V> task)

Изменяет или заменяет задачу, используемую для выполнения исполняемого объекта. Этот метод может использоваться для переопределения конкретного класса, используемого для управления внутренними задачами. Реализация по умолчанию просто возвращает заданную задачу.

Параметры типа:
V - тип результата задачи
Параметры:
runnable - переданный Runnable
task - задача, созданная для выполнения исполняемого объекта
Возвращает:
задачу, которая может выполнить исполняемый объект
С версии:
1.6

decorateTask

protected <V> RunnableScheduledFuture<V> decorateTask(Callable<V> callable,
                                                      RunnableScheduledFuture<V> task)

Изменяет или заменяет задачу, используемую для выполнения вызываемого объекта. Этот метод может использоваться для переопределения конкретного класса, используемого для управления внутренними задачами. Реализация по умолчанию просто возвращает заданную задачу.

Параметры типа:
V - тип результата задачи
Параметры:
callable - переданный Callable
task - задача, созданная для выполнения вызываемого объекта
Возвращает:
задачу, которая может выполнить вызываемый объект
С версии:
1.6

schedule

public ScheduledFuture<?> schedule(Runnable command,
                                   long delay,
                                   TimeUnit unit)

Описание скопировано из интерфейса: ScheduledExecutorService

Отправляет одноразовую задачу, которая становится активной после заданной задержки.

Указано в:
schedule в интерфейсе ScheduledExecutorService
Параметры:
command - задача для выполнения
delay - время задержки выполнения с текущего момента
unit - единица времени параметра задержки
Возвращает:
ScheduledFuture, представляющий незавершенное выполнение задачи, и метод get() которого вернет null по завершении
Исключения:
RejectedExecutionException - если задачу невозможно запланировать на выполнение
NullPointerException - если команда или единица времени равны null

schedule

public <V> ScheduledFuture<V> schedule(Callable<V> callable,
                                       long delay,
                                       TimeUnit unit)

Описание скопировано из интерфейса: ScheduledExecutorService

Отправляет возвращающую значение одноразовую задачу, которая становится активной после заданной задержки.

Указано в:
schedule в интерфейсе ScheduledExecutorService
Параметры типа:
V - тип результата вызываемого объекта
Параметры:
callable - функция для выполнения
delay - время задержки выполнения с текущего момента
unit - единица времени параметра задержки
Возвращает:
ScheduledFuture, который можно использовать для извлечения результата или отмены
Исключения:
RejectedExecutionException - если задачу невозможно запланировать на выполнение
NullPointerException - если вызываемый объект или единица времени равны null

scheduleAtFixedRate

public ScheduledFuture<?> scheduleAtFixedRate(Runnable command,
                                              long initialDelay,
                                              long period,
                                              TimeUnit unit)

Отправляет периодическое действие, которое становится активным сначала после заданной начальной задержки, а затем с заданным периодом; то есть, выполнения начнутся через initialDelay, затем initialDelay + period, затем initialDelay + 2 * period, и так далее.

Последовательность выполнений задачи продолжается бесконечно, пока не произойдет одно из следующих исключительных завершений:

Последующие выполнения подавляются. Последующие вызовы isDone() для возвращенного future вернут true.

Если какое-либо выполнение этой задачи занимает больше времени, чем ее период, то последующие выполнения могут начаться позже, но не будут выполняться одновременно.

Указано в:
scheduleAtFixedRate в интерфейсе ScheduledExecutorService
Параметры:
command - задача для выполнения
initialDelay - время задержки первого выполнения
period - период между последовательными выполнениями
unit - единица времени параметров initialDelay и period
Возвращает:
ScheduledFuture, представляющий незавершенное выполнение серии повторяющихся задач. Метод get() future никогда не вернется нормально и выбросит исключение при отмене задачи или ненормальном завершении выполнения задачи.
Исключения:
RejectedExecutionException - если задачу невозможно запланировать на выполнение
NullPointerException - если команда или единица времени равны null
IllegalArgumentException - если период меньше или равен нулю

scheduleWithFixedDelay

public ScheduledFuture<?> scheduleWithFixedDelay(Runnable command,
                                                 long initialDelay,
                                                 long delay,
                                                 TimeUnit unit)

Отправляет периодическое действие, которое становится активным сначала после заданной начальной задержки, а затем с заданной задержкой между завершением одного выполнения и началом следующего.

Последовательность выполнений задачи продолжается бесконечно, пока не произойдет одно из следующих исключительных завершений:

Последующие выполнения подавляются. Последующие вызовы isDone() для возвращенного future вернут true.
Указано в:
scheduleWithFixedDelay в интерфейсе ScheduledExecutorService
Параметры:
command - задача для выполнения
initialDelay - время задержки первого выполнения
delay - задержка между завершением одного выполнения и началом следующего
unit - единица времени параметров initialDelay и delay
Возвращает:
ScheduledFuture, представляющий незавершенное выполнение серии повторяющихся задач. Метод get() future никогда не вернется нормально и выбросит исключение при отмене задачи или ненормальном завершении выполнения задачи.
Исключения:
RejectedExecutionException - если задачу невозможно запланировать на выполнение
NullPointerException - если команда или единица времени равны null
IllegalArgumentException - если задержка меньше или равна нулю

execute

public void execute(Runnable command)

Выполняет command с нулевой требуемой задержкой. Это имеет эффект, эквивалентный schedule(command, 0, anyUnit). Обратите внимание, что проверки очереди и списка, возвращаемого shutdownNow, будут обращаться к ScheduledFuture с нулевой задержкой, а не к самому command.

Следствием использования объектов ScheduledFuture является то, что afterExecute всегда вызывается с нулевым вторым аргументом Throwable, даже если command завершился неожиданно. Вместо этого Throwable, выброшенный такой задачей, может быть получен через Future.get().

Указано в:
execute в интерфейсе Executor
Переопределяет:
execute в классе ThreadPoolExecutor
Параметры:
command - задача для выполнения
Исключения:
RejectedExecutionException - по усмотрению RejectedExecutionHandler, если задачу невозможно принять на выполнение, потому что исполнитель был закрыт
NullPointerException - если command равен null

submit

public Future<?> submit(Runnable task)

Описание скопировано из интерфейса: ExecutorService

Отправляет задачу Runnable на выполнение и возвращает Future, представляющий эту задачу. Метод get Future вернет null после успешного завершения.

Указано в:
submit в интерфейсе ExecutorService
Переопределяет:
submit в классе AbstractExecutorService
Параметры:
task - задача для отправки
Возвращает:
Future, представляющий незавершенное выполнение задачи
Исключения:
RejectedExecutionException - если задачу невозможно запланировать на выполнение
NullPointerException - если задача равна null

submit

public <T> Future<T> submit(Runnable task,
                            T result)

Описание скопировано из интерфейса: ExecutorService

Отправляет задачу Runnable на выполнение и возвращает Future, представляющий эту задачу. Метод get Future вернет заданный результат после успешного завершения.

Указано в:
submit в интерфейсе ExecutorService
Переопределяет:
submit в классе AbstractExecutorService
Параметры типа:
T - тип результата
Параметры:
task - задача для отправки
result - результат для возврата
Возвращает:
Future, представляющий незавершенное выполнение задачи
Исключения:
RejectedExecutionException - если задачу невозможно запланировать на выполнение
NullPointerException - если задача равна null

submit

public <T> Future<T> submit(Callable<T> task)

Описание скопировано из интерфейса: ExecutorService

Отправляет задачу с возвращаемым значением на выполнение и возвращает Future, представляющий ожидаемые результаты задачи. Метод get Future вернёт результат задачи при успешном завершении.

Если вы хотите немедленно заблокировать ожидание задачи, вы можете использовать конструкции вида result = exec.submit(aCallable).get();

Примечание: класс Executors включает набор методов, которые могут преобразовывать некоторые другие общие объекты, похожие на замыкания, например, PrivilegedAction в форму Callable, чтобы они могли быть отправлены.

Определено в:
submit в интерфейсе ExecutorService
Переопределяет:
submit в классе AbstractExecutorService
Параметры типа:
T - тип результата задачи
Параметры:
task - отправляемая задача
Возвращает:
Future, представляющий ожидаемое завершение задачи
Исключения:
RejectedExecutionException - если задачу нельзя запланировать на выполнение
NullPointerException - если задача null

setContinueExistingPeriodicTasksAfterShutdownPolicy

public void setContinueExistingPeriodicTasksAfterShutdownPolicy(boolean value)

Устанавливает политику, определяющую, нужно ли продолжать выполнение существующих периодических задач даже когда этот executor был shutdown. В этом случае выполнение будет продолжаться до shutdownNow или политика будет установлена в значение false при уже выполненном завершении. Значение по умолчанию равно false.

Параметры:
value - если true, продолжить после завершения, иначе нет
См. также:
getContinueExistingPeriodicTasksAfterShutdownPolicy()

getContinueExistingPeriodicTasksAfterShutdownPolicy

public boolean getContinueExistingPeriodicTasksAfterShutdownPolicy()

Получает политику, определяющую, нужно ли продолжать выполнение существующих периодических задач даже когда этот executor был shutdown. В этом случае выполнение будет продолжаться до shutdownNow или политика будет установлена в значение false при уже выполненном завершении. Значение по умолчанию равно false.

Возвращает:
true если продолжать после завершения
См. также:
setContinueExistingPeriodicTasksAfterShutdownPolicy(boolean)

setExecuteExistingDelayedTasksAfterShutdownPolicy

public void setExecuteExistingDelayedTasksAfterShutdownPolicy(boolean value)

Устанавливает политику, определяющую, нужно ли выполнять существующие отложенные задачи, даже когда этот executor был shutdown. В этом случае эти задачи завершатся только при shutdownNow, или после установки политики в false при уже выполненном завершении. Значение по умолчанию равно true.

Параметры:
value - если true, выполнять после завершения, иначе нет
См. также:
getExecuteExistingDelayedTasksAfterShutdownPolicy()

getExecuteExistingDelayedTasksAfterShutdownPolicy

public boolean getExecuteExistingDelayedTasksAfterShutdownPolicy()

Получает политику, определяющую, нужно ли выполнять существующие отложенные задачи, даже когда этот executor был shutdown. В этом случае эти задачи завершатся только при shutdownNow, или после установки политики в false при уже выполненном завершении. Значение по умолчанию равно true.

Возвращает:
true если выполнять после завершения
См. также:
setExecuteExistingDelayedTasksAfterShutdownPolicy(boolean)

setRemoveOnCancelPolicy

public void setRemoveOnCancelPolicy(boolean value)

Устанавливает политику, определяющую, должны ли отменённые задачи немедленно удаляться из очереди задач во время отмены. Значение по умолчанию равно false.

Параметры:
value - если true, удалить при отмене, иначе нет
С:
1.7
См. также:
getRemoveOnCancelPolicy()

getRemoveOnCancelPolicy

public boolean getRemoveOnCancelPolicy()

Получает политику, определяющую, должны ли отменённые задачи немедленно удаляться из очереди задач во время отмены. Значение по умолчанию равно false.

Возвращает:
true если отменённые задачи немедленно удаляются из очереди
С:
1.7
См. также:
setRemoveOnCancelPolicy(boolean)

shutdown

public void shutdown()

Инициализирует упорядоченное завершение, в котором ранее отправленные задачи выполняются, но новые задачи не принимаются. Вызов не имеет дополнительного эффекта, если уже завершён.

Этот метод не ожидает завершения ранее отправленных задач. Используйте awaitTermination для этого.

Если ExecuteExistingDelayedTasksAfterShutdownPolicy был установлен false, существующие отложенные задачи, задержка которых ещё не истекла, отменяются. И, если ContinueExistingPeriodicTasksAfterShutdownPolicy не был установлен true, будущие выполнение существующих периодических задач будут отменены.

Определено в:
shutdown в интерфейсе ExecutorService
Переопределяет:
shutdown в классе ThreadPoolExecutor
Исключения:
SecurityException - если менеджер безопасности существует и завершение этого ExecutorService может манипулировать потоками, которые вызывающий не имеет права изменять, потому что не владеет RuntimePermission("modifyThread"), или метод checkAccess менеджера безопасности отказывает в доступе.

shutdownNow

public List<Runnable> shutdownNow()

Пытается остановить все активно выполняющиеся задачи, останавливает обработку ожидающих задач и возвращает список задач, которые ожидали выполнения. Эти задачи сбрасываются (удаляются) из очереди задач при возвращении из этого метода.

Этот метод не ожидает завершения активно выполняющихся задач. Используйте awaitTermination для этого.

Гарантии, кроме наилучших усилий по остановке обработки активно выполняющихся задач, отсутствуют. Эта реализация прерывает задачи через Thread.interrupt(); любая задача, которая не реагирует на прерывания, может никогда не завершиться.

Определено в:
shutdownNow в интерфейсе ExecutorService
Переопределяет:
shutdownNow в классе ThreadPoolExecutor
Возвращает:
список задач, которые никогда не начинали выполнение. Каждый элемент этого списка — ScheduledFuture. Для задач, отправленных через один из методов schedule, элемент будет идентичен возвращённому ScheduledFuture. Для задач, отправленных с помощью execute, элемент будет ScheduledFuture с нулевой задержкой.
Исключения:
SecurityException - если менеджер безопасности существует и завершение этого ExecutorService может манипулировать потоками, которые вызывающий не имеет права изменять, потому что не владеет RuntimePermission("modifyThread"), или метод checkAccess менеджера безопасности отказывает в доступе.

getQueue

public BlockingQueue<Runnable> getQueue()

Возвращает очередь задач, используемую этим executor. Доступ к очереди задач предназначен в первую очередь для отладки и мониторинга. Эта очередь может быть в активном использовании. Получение очереди задач не предотвращает выполнение задач в очереди.

Каждый элемент этой очереди — ScheduledFuture. Для задач, отправленных через один из методов schedule, элемент будет идентичен возвращённому ScheduledFuture. Для задач, отправленных с помощью execute, элемент будет ScheduledFuture с нулевой задержкой.

Итерация по этой очереди не гарантирует прохождение задач в порядке, в котором они будут выполняться.

Переопределяет:
getQueue в классе ThreadPoolExecutor
Возвращает:
очередь задач

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/ScheduledThreadPoolExecutor.html

Spec-Zone .ru
спецификации, руководства, описания, API