Spec-Zone.ru › OpenJDK 24

Класс 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

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

Вложенные классы/интерфейсы, объявленные в классе 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, 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

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

invokeAll, invokeAll, invokeAny, invokeAny, newTaskFor, newTaskFor

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

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

Методы, объявленные в интерфейсе java.util.concurrent.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 - если команда или единица измерения времени равны 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 и так далее.

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

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

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

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

scheduleWithFixedDelay

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

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

  • Задача явным образом отменяется через возвращённую будущую задачу.
  • Вызывается метод shutdown(), и политика о продолжении после завершения не установлена в значение true, или вызывается метод shutdownNow(); также это приведёт к отмене задачи.
  • При выполнении задачи возникает исключение. В этом случае вызов get на возвращённой будущей задаче выбросит ExecutionException, содержащий исключение в качестве причины.
Последующие выполнения подавляются. Последующие вызовы isDone() на возвращённой будущей задаче вернут true.
Specified by:
scheduleWithFixedDelay в интерфейсе ScheduledExecutorService
Parameters:
command - задача для выполнения
initialDelay - время задержки первого выполнения
delay - задержка между завершением одного выполнения и началом следующего
unit - единица измерения времени для параметров initialDelay и delay
Returns:
ScheduledFuture, представляющий собой ожидаемое завершение серии повторяющихся задач. Метод get() будущего никогда не вернёт значение нормально и выбросит исключение при отмене задачи или аномальном завершении выполнения задачи.
Throws:
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().

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

submit

public Future<?> submit(Runnable task)
Описание скопировано из интерфейса: ExecutorService
Отправляет задачу Runnable на выполнение и возвращает Future, представляющую эту задачу. Метод get Future вернёт null при успешном завершении.
Specified by:
submit в интерфейсе ExecutorService
Overrides:
submit в классе AbstractExecutorService
Parameters:
task - задача для отправки
Returns:
Future, представляющая ожидаемое завершение задачи
Throws:
RejectedExecutionException - если задачу нельзя запланировать на выполнение
NullPointerException - если задача равна null

submit

public <T> Future<T> submit(Runnable task, T result)
Описание скопировано из интерфейса: ExecutorService
Отправляет задачу Runnable на выполнение и возвращает Future, представляющую эту задачу. Метод get Future вернёт заданное значение результата при успешном завершении.
Specified by:
submit в интерфейсе ExecutorService
Overrides:
submit в классе AbstractExecutorService
Type Parameters:
T - тип результата
Parameters:
task - задача для отправки
result - возвращаемое значение результата
Returns:
Future, представляющая ожидаемое завершение задачи
Throws:
RejectedExecutionException - если задачу нельзя запланировать на выполнение
NullPointerException - если задача равна null

submit

public <T> Future<T> submit(Callable<T> task)
Описание скопировано из интерфейса: ExecutorService
Отправляет возвращающую значение задачу на выполнение и возвращает Future, представляющую ожидаемые результаты задачи. Метод get Future вернёт результат задачи при успешном завершении.

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

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

Specified by:
submit в интерфейсе ExecutorService
Overrides:
submit в классе AbstractExecutorService
Type Parameters:
T - тип результата задачи
Parameters:
task - задача для отправки
Returns:
Future, представляющая ожидаемое завершение задачи
Throws:
RejectedExecutionException - если задачу нельзя запланировать на выполнение
NullPointerException - если задача равна null

setContinueExistingPeriodicTasksAfterShutdownPolicy

public void setContinueExistingPeriodicTasksAfterShutdownPolicy(boolean value)
Устанавливает политику о продолжении выполнения существующих периодических задач даже при завершении работы этого исполняющего потока. В этом случае выполнения будут продолжаться до shutdownNow или политика будет установлена в значение false при уже завершении работы. Это значение по умолчанию false.
Parameters:
value - если true, продолжать после завершения, иначе нет
See Also:
  • getContinueExistingPeriodicTasksAfterShutdownPolicy()

getContinueExistingPeriodicTasksAfterShutdownPolicy

public boolean getContinueExistingPeriodicTasksAfterShutdownPolicy()
Возвращает политику о продолжении выполнения существующих периодических задач даже при завершении работы этого исполняющего потока. В этом случае выполнения будут продолжаться до shutdownNow или политика будет установлена в значение false при уже завершении работы. Это значение по умолчанию false.
Returns:
true если продолжать после завершения
See Also:
  • setContinueExistingPeriodicTasksAfterShutdownPolicy(boolean)

setExecuteExistingDelayedTasksAfterShutdownPolicy

public void setExecuteExistingDelayedTasksAfterShutdownPolicy(boolean value)
Устанавливает политику о выполнении существующих задач с задержкой даже при завершении работы этого исполняющего потока. В этом случае эти задачи завершатся только при shutdownNow или после изменения политики в значение false при уже завершённой работе. Это значение по умолчанию true.
Parameters:
value - если true, выполнить после завершения, иначе нет
See Also:
  • getExecuteExistingDelayedTasksAfterShutdownPolicy()

getExecuteExistingDelayedTasksAfterShutdownPolicy

public boolean getExecuteExistingDelayedTasksAfterShutdownPolicy()
Возвращает политику о выполнении существующих задач с задержкой даже при завершении работы этого исполняющего потока. В этом случае эти задачи завершатся только при shutdownNow или после изменения политики в значение false при уже завершённой работе. Это значение по умолчанию true.
Returns:
true если выполнить после завершения
See Also:
  • setExecuteExistingDelayedTasksAfterShutdownPolicy(boolean)

setRemoveOnCancelPolicy

public void setRemoveOnCancelPolicy(boolean value)
Устанавливает политику, определяющую, следует ли немедленно удалять отменённые задачи из очереди задач при отмене. По умолчанию это значение равно false.
Parameters:
value - если true, удалять при отмене, иначе — нет
Since:
1.7
See Also:
  • getRemoveOnCancelPolicy()

getRemoveOnCancelPolicy

public boolean getRemoveOnCancelPolicy()
Получает политику, определяющую, следует ли немедленно удалять отменённые задачи из очереди задач при отмене. По умолчанию это значение равно false.
Returns:
true, если отменённые задачи немедленно удаляются из очереди
Since:
1.7
See Also:
  • setRemoveOnCancelPolicy(boolean)

shutdown

public void shutdown()
Инициирует упорядоченную остановку, в которой ранее отправленные задачи выполняются, но новые задачи не принимаются. Вызов не имеет дополнительного эффекта, если остановка уже выполнена.

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

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

Specified by:
shutdown in interface ExecutorService
Overrides:
shutdown in class ThreadPoolExecutor

shutdownNow

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

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

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

Specified by:
shutdownNow in interface ExecutorService
Overrides:
shutdownNow in class ThreadPoolExecutor
Returns:
список задач, которые никогда не начинали выполнение. Каждый элемент этого списка является ScheduledFuture. Для задач, отправленных одним из schedule методов, элемент будет идентичен возвращённому ScheduledFuture. Для задач, отправленных с помощью execute, элемент будет ScheduledFuture с нулевой задержкой.

getQueue

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

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

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

Overrides:
getQueue in class ThreadPoolExecutor
Returns:
очередь задач

© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/util/concurrent/ScheduledThreadPoolExecutor.html

Spec-Zone.ru

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