Spec-Zone.ru › OpenJDK 17

Класс ScheduledThreadPoolExecutor

java.lang.Object
java.util.concurrent.AbstractExecutorService
java.util.concurrent.ThreadPoolExecutor
java.util.concurrent.ScheduledThreadPoolExecutor
Все реализованные интерфейсы:
Executor, ExecutorService, ScheduledExecutorService
public class ScheduledThreadPoolExecutor extends ThreadPoolExecutor implements ScheduledExecutorService
A ThreadPoolExecutor that can additionally schedule commands to run after a given delay, or to execute periodically. This class is preferable to Timer when multiple worker threads are needed, or when the additional flexibility or capabilities of ThreadPoolExecutor (which this class extends) are required.

Delayed tasks execute no sooner than they are enabled, but without any real-time guarantees about when, after they are enabled, they will commence. Tasks scheduled for exactly the same execution time are enabled in first-in-first-out (FIFO) order of submission.

When a submitted task is cancelled before it is run, execution is suppressed. By default, such a cancelled task is not automatically removed from the work queue until its delay elapses. While this enables further inspection and monitoring, it may also cause unbounded retention of cancelled tasks. To avoid this, use setRemoveOnCancelPolicy(boolean) to cause tasks to be immediately removed from the work queue at time of cancellation.

Successive executions of a periodic task scheduled via scheduleAtFixedRate or scheduleWithFixedDelay do not overlap. While different executions may be performed by different threads, the effects of prior executions happen-before those of subsequent ones.

While this class inherits from ThreadPoolExecutor, a few of the inherited tuning methods are not useful for it. In particular, because it acts as a fixed-sized pool using corePoolSize threads and an unbounded queue, adjustments to maximumPoolSize have no useful effect. Additionally, it is almost never a good idea to set corePoolSize to zero or use allowCoreThreadTimeOut because this may leave the pool without threads to handle tasks once they become eligible to run.

As with ThreadPoolExecutor, if not otherwise specified, this class uses Executors.defaultThreadFactory() as the default thread factory, and ThreadPoolExecutor.AbortPolicy as the default rejected execution handler.

Примечания к расширению: Этот класс переопределяет методы 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.
 }
Since:
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)
Изменяет или заменяет задачу, используемую для выполнения исполняемого кода.
protected <V> RunnableScheduledFuture<V> decorateTask(Callable<V> callable, RunnableScheduledFuture<V> task)
Изменяет или заменяет задачу, используемую для выполнения вызываемого объекта.
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, представляющую ожидаемые результаты задачи.

Methods declared in class 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

Methods declared in class java.util.concurrent.AbstractExecutorService

invokeAll, invokeAll, invokeAny, invokeAny, newTaskFor, newTaskFor

Methods declared in class 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)
Изменяет или заменяет задачу, используемую для выполнения 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

планировать

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

планировать

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, и так далее.

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

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

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

Specified by:
scheduleAtFixedRate в интерфейсе ScheduledExecutorService
Parameters:
command - задача для выполнения
initialDelay - время задержки первого выполнения
period - период между последующими выполнениями
unit - единица измерения времени для параметров initialDelay и period
Returns:
ScheduledFuture, представляющий ожидающее завершение серии повторяющихся задач. Метод get() фьючерса никогда не вернёт значение нормально и выбросит исключение при отмене задачи или аномальном завершении выполнения задачи.
Throws:
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 всегда вызывается с null вторым 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, представляющую эту задачу. Метод Future's get вернёт заданный результат при успешном выполнении.
Указано в:
submit в интерфейсе ExecutorService
Переопределяет:
submit в классе AbstractExecutorService
Параметры типа:
T - тип результата
Параметры:
task - задача для представления
result - результат для возврата
Возвращает:
Future, представляющий ожидаемое завершение задачи
Исключения:
RejectedExecutionException - если задача не может быть запланирована для выполнения
NullPointerException - если задача равна null

submit

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

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

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

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

Установить политику продолжения периодических задач после завершения

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

Получить политику продолжения периодических задач после завершения

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

Установить политику выполнения отложенных задач после завершения

public void setExecuteExistingDelayedTasksAfterShutdownPolicy(boolean value)
Устанавливает политику выполнения существующих отложенных задач даже после завершения работы этого исполнителя. В этом случае эти задачи завершатся только при 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
Выбрасывает:
SecurityException - если существует менеджер безопасности и остановка этой ExecutorService может манипулировать потоками, которые вызывающий элемент не имеет права изменять, потому что он не обладает RuntimePermission("modifyThread"), или метод checkAccess менеджера безопасности отказывается предоставить доступ.

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.
Throws:
SecurityException - если существует менеджер безопасности и завершение работы этого ExecutorService может манипулировать потоками, которые вызывающему объекту не разрешено изменять, потому что он не владеет RuntimePermission("modifyThread"), или метод checkAccess менеджера безопасности отклоняет доступ.

getQueue

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

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

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

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

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

Spec-Zone.ru

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