Spec-Zone.ru › OpenJDK 25

Класс ScheduledThreadPoolExecutor

java.lang.Object
java.util.concurrent.AbstractExecutorService
java.util.concurrent.ThreadPoolExecutor
java.util.concurrent.ScheduledThreadPoolExecutor
Все реализуемые интерфейсы:
AutoCloseable, Executor, ExecutorService, ScheduledExecutorService
public class ScheduledThreadPoolExecutor extends ThreadPoolExecutor implements ScheduledExecutorService
ThreadPoolExecutor, который дополнительно позволяет планировать выполнение команд после заданной задержки или периодически. Этот класс предпочтительнее Timer, если требуется несколько рабочих потоков или дополнительные возможности и гибкость ThreadPoolExecutor (от которого наследуется этот класс).

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

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

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

Хотя этот класс наследуется от 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

Краткое описание вложенных классов

Вложенные классы/интерфейсы, объявленные в классе 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, представляющий ожидающий результат этой задачи.

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

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

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

invokeAll, invokeAll, invokeAny, invokeAny, newTaskFor, newTaskFor

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

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

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

awaitTermination, close, 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)
Изменяет или заменяет задачу, используемую для выполнения runnable. Этот метод можно переопределить, чтобы заменить конкретный класс, используемый для управления внутренними задачами. Реализация по умолчанию просто возвращает указанную задачу.
Параметры типа:
V — тип результата задачи
Параметры:
runnable — отправленный Runnable
task — задача, созданная для выполнения runnable
Возвращает:
задачу, которая может выполнить runnable
С версии:
1.6

decorateTask

protected <V> RunnableScheduledFuture<V> decorateTask(Callable<V> callable, RunnableScheduledFuture<V> task)
Изменяет или заменяет задачу, используемую для выполнения callable. Этот метод можно переопределить, чтобы заменить конкретный класс, используемый для управления внутренними задачами. Реализация по умолчанию просто возвращает указанную задачу.
Параметры типа:
V — тип результата задачи
Параметры:
callable — отправленный Callable
task — задача, созданная для выполнения callable
Возвращает:
задачу, которая может выполнить callable
С версии:
1.6

schedule

public ScheduledFuture<?> schedule(Runnable command, long delay, TimeUnit unit)
Описание скопировано из интерфейса: ScheduledExecutorService
Отправляет одноразовую задачу, которая становится доступной для выполнения после указанной задержки.
Определено в:
schedule в интерфейсе ScheduledExecutorService
Параметры:
command — задача для выполнения
delay — время задержки выполнения относительно текущего момента
unit — единица измерения параметра задержки
Возвращает:
ScheduledFuture, представляющий ожидающее завершения задачи и метод get() которого вернет null после завершения
Исключения:
RejectedExecutionException — если выполнение задачи невозможно запланировать
NullPointerException — если command или unit равен null

schedule

public <V> ScheduledFuture<V> schedule(Callable<V> callable, long delay, TimeUnit unit)
Описание скопировано из интерфейса: ScheduledExecutorService
Отправляет одноразовую задачу с возвращаемым значением, которая становится доступной для выполнения после указанной задержки.
Определено в:
schedule в интерфейсе ScheduledExecutorService
Параметры типа:
V — тип результата callable
Параметры:
callable — функция для выполнения
delay — время задержки выполнения относительно текущего момента
unit — единица измерения параметра задержки
Возвращает:
ScheduledFuture, который можно использовать для получения результата или отмены задачи
Исключения:
RejectedExecutionException — если выполнение задачи невозможно запланировать
NullPointerException — если callable или unit равен null

scheduleAtFixedRate

public ScheduledFuture<?> scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit)
Отправляет периодическое действие, которое впервые становится доступным для выполнения после указанной начальной задержки, а затем выполняется с указанным периодом; то есть выполнение начнется через initialDelay, затем через initialDelay + period, затем через initialDelay + 2 * period и так далее.

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

  • Задача явно отменена с помощью возвращенного объекта future.
  • Вызывается метод shutdown(), и политика продолжения после завершения работы не установлена в true, либо вызывается метод shutdownNow(); это также приводит к отмене задачи.
  • При выполнении задачи возникает исключение. В этом случае вызов get у возвращенного объекта future приведет к выбросу ExecutionException, причиной которого будет это исключение.
Последующие выполнения не производятся. Последующие вызовы isDone() у возвращенного объекта future вернут true.

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

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

scheduleWithFixedDelay

public ScheduledFuture<?> scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit)
Отправляет периодическое действие, которое впервые становится доступным для выполнения после указанной начальной задержки, а затем выполняется с указанной задержкой между завершением одного выполнения и началом следующего.

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

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

execute

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

Следствием использования объектов ScheduledFuture является то, что метод afterExecute всегда вызывается со вторым аргументом Throwable, равным null, даже если 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)
Задает политику продолжения выполнения существующих периодических задач после завершения работы исполнителя shutdown. В этом случае выполнение продолжится до shutdownNow или до тех пор, пока политика не будет установлена в false после завершения работы. По умолчанию это значение равно false.
Параметры:
value — если true, продолжать после завершения работы, иначе не продолжать
См. также:
  • getContinueExistingPeriodicTasksAfterShutdownPolicy()

getContinueExistingPeriodicTasksAfterShutdownPolicy

public boolean getContinueExistingPeriodicTasksAfterShutdownPolicy()
Возвращает политику продолжения выполнения существующих периодических задач после завершения работы исполнителя shutdown. В этом случае выполнение продолжится до shutdownNow или до тех пор, пока политика не будет установлена в false после завершения работы. По умолчанию это значение равно false.
Возвращает:
true, если выполнение будет продолжено после завершения работы
См. также:
  • setContinueExistingPeriodicTasksAfterShutdownPolicy(boolean)

setExecuteExistingDelayedTasksAfterShutdownPolicy

public void setExecuteExistingDelayedTasksAfterShutdownPolicy(boolean value)
Задает политику выполнения существующих задач с задержкой после завершения работы исполнителя shutdown. В этом случае такие задачи завершатся только при shutdownNow или после установки политики в false после завершения работы. По умолчанию это значение равно true.
Параметры:
value — если true, выполнять после завершения работы, иначе не выполнять
См. также:
  • getExecuteExistingDelayedTasksAfterShutdownPolicy()

getExecuteExistingDelayedTasksAfterShutdownPolicy

public boolean getExecuteExistingDelayedTasksAfterShutdownPolicy()
Возвращает политику выполнения существующих задач с задержкой после завершения работы исполнителя 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

shutdownNow

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

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

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

Определено в:
shutdownNow в интерфейсе ExecutorService
Переопределяет:
shutdownNow в классе ThreadPoolExecutor
Возвращает:
список задач, выполнение которых так и не началось. Каждый элемент этого списка является ScheduledFuture. Для задач, отправленных одним из методов schedule, элемент будет идентичен возвращенному ScheduledFuture. Для задач, отправленных с помощью execute, элементом будет ScheduledFuture с нулевой задержкой.

getQueue

public BlockingQueue<Runnable> getQueue()
Возвращает очередь задач, используемую этим исполнителем. Доступ к очереди задач предназначен в первую очередь для отладки и мониторинга. Эта очередь может активно использоваться. Получение очереди задач не мешает выполнению поставленных в очередь задач.

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

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

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

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, которая содержит более подробные описания для разработчиков, включая общие сведения, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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/25/docs/api/java.base/java/util/concurrent/ScheduledThreadPoolExecutor.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API