Класс ScheduledThreadPoolExecutor
- Все реализуемые интерфейсы:
AutoCloseable, Executor, ExecutorService, ScheduledExecutorService
public class ScheduledThreadPoolExecutor extends ThreadPoolExecutor implements ScheduledExecutorService
ThreadPoolExecutor, который также может планировать выполнение команд после заданной задержки или периодически. Этот класс предпочтительнее Timer, если требуется несколько рабочих потоков либо дополнительная гибкость или возможности ThreadPoolExecutor (от которого наследуется этот класс). Отложенные задачи выполняются не раньше, чем становятся доступными для выполнения, однако никаких гарантий реального времени относительно того, когда именно они начнут выполняться после этого, нет. Задачи, запланированные на одно и то же время выполнения, становятся доступными в порядке поступления — первым поступил, первым выполнен (FIFO).
Если отправленная задача отменена до запуска, ее выполнение подавляется. По умолчанию такая отмененная задача не удаляется автоматически из очереди работ, пока не истечет задержка. Это позволяет проводить дополнительную проверку и мониторинг, но также может привести к неограниченному накоплению отмененных задач. Чтобы избежать этого, используйте setRemoveOnCancelPolicy(boolean), чтобы задачи сразу удалялись из очереди работ при отмене.
Последовательные выполнения периодической задачи, запланированной с помощью scheduleAtFixedRate или scheduleWithFixedDelay, не перекрываются. Хотя разные выполнения могут осуществляться разными потоками, эффекты предыдущих выполнений предшествуют по отношению happens-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
Краткое описание вложенных классов
Вложенные классы/интерфейсы, объявленные в классе ThreadPoolExecutor
ThreadPoolExecutor.AbortPolicy, ThreadPoolExecutor.CallerRunsPolicy, ThreadPoolExecutor.DiscardOldestPolicy, ThreadPoolExecutor.DiscardPolicy | Модификатор и тип | Класс | Описание |
|---|---|---|
static class |
ThreadPoolExecutor.AbortPolicy |
Обработчик отклоненных задач, который выбрасывает RejectedExecutionException. |
static class |
ThreadPoolExecutor.CallerRunsPolicy |
Обработчик отклоненных задач, который выполняет отклоненную задачу непосредственно в потоке, вызывающем метод execute, если только исполнитель не завершил работу; в этом случае задача отбрасывается. |
static class |
ThreadPoolExecutor.DiscardOldestPolicy |
Обработчик отклоненных задач, который удаляет самый старый необработанный запрос, а затем повторяет execute, если только исполнитель не завершил работу; в этом случае задача отбрасывается. |
static class |
ThreadPoolExecutor.DiscardPolicy |
Обработчик отклоненных задач, который без уведомления отбрасывает отклоненную задачу. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
ScheduledThreadPoolExecutor |
Создает новый ScheduledThreadPoolExecutor с заданным размером основного пула. |
ScheduledThreadPoolExecutor |
Создает новый ScheduledThreadPoolExecutor с заданными начальными параметрами. |
ScheduledThreadPoolExecutor |
Создает новый ScheduledThreadPoolExecutor с заданными начальными параметрами. |
ScheduledThreadPoolExecutor |
Создает новый ScheduledThreadPoolExecutor с заданными начальными параметрами. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
protected <V> RunnableScheduledFuture |
decorateTask |
Изменяет или заменяет задачу, используемую для выполнения runnable. |
protected <V> RunnableScheduledFuture |
decorateTask |
Изменяет или заменяет задачу, используемую для выполнения callable. |
void |
execute |
Выполняет command без обязательной задержки. |
boolean |
getContinueExistingPeriodicTasksAfterShutdownPolicy() |
Возвращает политику, определяющую, следует ли продолжать выполнение существующих периодических задач, даже если этот исполнитель был shutdown. |
boolean |
getExecuteExistingDelayedTasksAfterShutdownPolicy() |
Возвращает политику, определяющую, следует ли выполнять существующие задачи с задержкой, даже если этот исполнитель был shutdown. |
BlockingQueue |
getQueue() |
Возвращает очередь задач, используемую этим исполнителем. |
boolean |
getRemoveOnCancelPolicy() |
Возвращает политику, определяющую, следует ли немедленно удалять отмененные задачи из очереди работ при отмене. |
ScheduledFuture |
schedule |
Отправляет одноразовую задачу, которая становится доступной для выполнения после заданной задержки. |
<V> ScheduledFuture |
schedule |
Отправляет одноразовую задачу, возвращающую значение и становящуюся доступной для выполнения после заданной задержки. |
ScheduledFuture |
scheduleAtFixedRate |
Отправляет периодическое действие, которое становится доступным для выполнения сначала после заданной начальной задержки, а затем с заданным периодом; то есть выполнения начнутся через initialDelay, затем через initialDelay + period, потом через initialDelay + 2 * period и так далее. |
ScheduledFuture |
scheduleWithFixedDelay |
Отправляет периодическое действие, которое становится доступным для выполнения сначала после заданной начальной задержки, а затем с заданной задержкой между завершением одного выполнения и началом следующего. |
void |
setContinueExistingPeriodicTasksAfterShutdownPolicy |
Задает политику, определяющую, следует ли продолжать выполнение существующих периодических задач, даже если этот исполнитель был shutdown. |
void |
setExecuteExistingDelayedTasksAfterShutdownPolicy |
Задает политику, определяющую, следует ли выполнять существующие задачи с задержкой, даже если этот исполнитель был shutdown. |
void |
setRemoveOnCancelPolicy |
Задает политику, определяющую, следует ли немедленно удалять отмененные задачи из очереди работ при отмене. |
void |
shutdown() |
Начинает упорядоченное завершение работы, при котором ранее отправленные задачи выполняются, но новые задачи не принимаются. |
List |
shutdownNow() |
Пытается остановить все активно выполняемые задачи, прекращает обработку ожидающих задач и возвращает список задач, ожидавших выполнения. |
Future |
submit |
Отправляет задачу Runnable на выполнение и возвращает Future, представляющий эту задачу. |
<T> Future |
submit |
Отправляет задачу Runnable на выполнение и возвращает Future, представляющий эту задачу. |
<T> Future |
submit |
Отправляет задачу, возвращающую значение, на выполнение и возвращает Future, представляющий ожидающие результаты задачи. |
Методы, объявленные в классе ThreadPoolExecutor
afterExecute, allowCoreThreadTimeOut, allowsCoreThreadTimeOut, awaitTermination, beforeExecute, getActiveCount, getCompletedTaskCount, getCorePoolSize, getKeepAliveTime, getLargestPoolSize, getMaximumPoolSize, getPoolSize, getRejectedExecutionHandler, getTaskCount, getThreadFactory, isShutdown, isTerminated, isTerminating, prestartAllCoreThreads, prestartCoreThread, purge, remove, setCorePoolSize, setKeepAliveTime, setMaximumPoolSize, setRejectedExecutionHandler, setThreadFactory, terminated, toString | Модификатор и тип | Метод | Описание |
|---|---|---|
protected void |
afterExecute |
Метод, вызываемый после завершения выполнения заданного Runnable. |
void |
allowCoreThreadTimeOut |
Задает политику, определяющую, могут ли основные потоки завершаться по тайм-ауту и прекращать работу, если в течение времени ожидания не поступают задачи; при поступлении новых задач при необходимости создаются замещающие потоки. |
boolean |
allowsCoreThreadTimeOut() |
Возвращает true, если этот пул позволяет основным потокам завершаться по тайм-ауту и прекращать работу, если в течение времени keepAlive не поступают задачи; при поступлении новых задач при необходимости создаются замещающие потоки. |
boolean |
awaitTermination |
Блокирует выполнение до завершения всех задач после запроса на завершение работы, до истечения времени ожидания или до прерывания текущего потока — в зависимости от того, что произойдет первым. |
protected void |
beforeExecute |
Метод, вызываемый перед выполнением заданного Runnable в заданном потоке. |
int |
getActiveCount() |
Возвращает приблизительное количество потоков, активно выполняющих задачи. |
long |
getCompletedTaskCount() |
Возвращает приблизительное общее количество задач, выполнение которых завершено. |
int |
getCorePoolSize() |
Возвращает количество основных потоков. |
long |
getKeepAliveTime |
Возвращает время ожидания потока — время, в течение которого потоки могут оставаться бездействующими до завершения. |
int |
getLargestPoolSize() |
Возвращает наибольшее количество потоков, одновременно находившихся в пуле. |
int |
getMaximumPoolSize() |
Возвращает максимально допустимое количество потоков. |
int |
getPoolSize() |
Возвращает текущее количество потоков в пуле. |
RejectedExecutionHandler |
getRejectedExecutionHandler() |
Возвращает текущий обработчик невыполняемых задач. |
long |
getTaskCount() |
Возвращает приблизительное общее количество задач, выполнение которых когда-либо планировалось. |
ThreadFactory |
getThreadFactory() |
Возвращает фабрику потоков, используемую для создания новых потоков. |
boolean |
isShutdown() |
Возвращает true, если работа этого исполнителя была завершена. |
boolean |
isTerminated() |
Возвращает true, если после завершения работы все задачи выполнены. |
boolean |
isTerminating() |
Возвращает true, если этот исполнитель находится в процессе завершения после вызова ThreadPoolExecutor.shutdown() или ThreadPoolExecutor.shutdownNow(), но еще не завершил работу полностью. |
int |
prestartAllCoreThreads() |
Запускает все основные потоки, переводя их в режим ожидания работы. |
boolean |
prestartCoreThread() |
Запускает основной поток, переводя его в режим ожидания работы. |
void |
purge() |
Пытается удалить из очереди работ все задачи Future, которые были отменены. |
boolean |
remove |
Удаляет эту задачу из внутренней очереди исполнителя, если она там присутствует, предотвращая ее запуск, если выполнение еще не началось. |
void |
setCorePoolSize |
Задает количество основных потоков. |
void |
setKeepAliveTime |
Задает время ожидания потока — время, в течение которого потоки могут оставаться бездействующими до завершения. |
void |
setMaximumPoolSize |
Задает максимально допустимое количество потоков. |
void |
setRejectedExecutionHandler |
Задает новый обработчик невыполняемых задач. |
void |
setThreadFactory |
Задает фабрику потоков, используемую для создания новых потоков. |
protected void |
terminated() |
Метод, вызываемый при завершении работы Executor. |
String |
toString() |
Возвращает строку, идентифицирующую этот пул и его состояние, включая сведения о состоянии выполнения и приблизительном количестве рабочих потоков и задач. |
Методы, объявленные в классе AbstractExecutorService
invokeAll, invokeAll, invokeAny, invokeAny, newTaskFor, newTaskFor | Модификатор и тип | Метод | Описание |
|---|---|---|
<T> List |
invokeAll |
Выполняет заданные задачи и возвращает список объектов Future с их состояниями и результатами после завершения всех задач. |
<T> List |
invokeAll |
Выполняет заданные задачи и возвращает список объектов Future с их состояниями и результатами после завершения всех задач или истечения времени ожидания — в зависимости от того, что произойдет первым. |
<T> T |
invokeAny |
Выполняет заданные задачи и возвращает результат одной из них, успешно завершившейся (то есть не выбросившей исключение), если такая задача есть. |
<T> T |
invokeAny |
Выполняет заданные задачи и возвращает результат одной из них, успешно завершившейся (то есть не выбросившей исключение), если такая задача завершится до истечения заданного времени ожидания. |
protected <T> RunnableFuture |
newTaskFor |
Возвращает RunnableFuture для заданного runnable и значения по умолчанию. |
protected <T> RunnableFuture |
newTaskFor |
Возвращает RunnableFuture для заданной задачи callable. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли этот объект какому-либо другому объекту. |
protected void |
finalize() |
Устарело, планируется удаление: этот элемент API может быть удален в будущей версии. Финализация устарела и может быть удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова notify или interrupt. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова notify или interrupt, либо до истечения заданного времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова notify или interrupt, либо до истечения заданного времени. |
Методы, объявленные в интерфейсе ExecutorService
close | Модификатор и тип | Метод | Описание |
|---|---|---|
default void |
close() |
Начинает упорядоченное завершение работы, при котором ранее отправленные задачи выполняются, но новые задачи не принимаются. |
Подробное описание конструкторов
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— задача, созданная для выполнения runnable - Возвращает:
- задачу, способную выполнить runnable
- Начиная с версии:
- 1.6
decorateTask
protected <V> RunnableScheduledFuture<V> decorateTask(Callable<V> callable, RunnableScheduledFuture<V> task)
- Параметры типа:
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)
ExecutorServiceget объекта Future вернет null при успешном завершении.- Определено в:
-
submitв интерфейсеExecutorService - Переопределяет:
-
submitв классеAbstractExecutorService - Параметры:
-
task— задача для отправки - Возвращает:
- Future, представляющий ожидающее завершения задачи
- Исключения:
-
RejectedExecutionException— если невозможно запланировать выполнение задачи -
NullPointerException— если задача равна null
submit
public <T> Future<T> submit(Runnable task, T result)
ExecutorServiceget объекта Future вернет заданный результат при успешном завершении.- Определено в:
-
submitв интерфейсеExecutorService - Переопределяет:
-
submitв классеAbstractExecutorService - Параметры типа:
T— тип результата- Параметры:
-
task— задача для отправки -
result— возвращаемый результат - Возвращает:
- Future, представляющий ожидающее завершения задачи
- Исключения:
-
RejectedExecutionException— если невозможно запланировать выполнение задачи -
NullPointerException— если задача равна null
submit
public <T> Future<T> submit(Callable<T> task)
ExecutorServiceget объекта 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
public boolean getContinueExistingPeriodicTasksAfterShutdownPolicy()
shutdown этого исполнителя. В этом случае выполнение продолжится до тех пор, пока не произойдет shutdownNow или пока политика не будет установлена в false после завершения работы. По умолчанию это значение равно false.- Возвращает:
-
true, если выполнение продолжится после завершения работы - См. также:
setExecuteExistingDelayedTasksAfterShutdownPolicy
public void setExecuteExistingDelayedTasksAfterShutdownPolicy(boolean value)
shutdown этого исполнителя. В этом случае выполнение этих задач завершится только при shutdownNow или после установки политики в false после завершения работы. По умолчанию это значение равно true.- Параметры:
-
value— еслиtrue, выполнять после завершения работы, иначе не выполнять - См. также:
getExecuteExistingDelayedTasksAfterShutdownPolicy
public boolean getExecuteExistingDelayedTasksAfterShutdownPolicy()
shutdown этого исполнителя. В этом случае выполнение этих задач завершится только при shutdownNow или после установки политики в false после завершения работы. По умолчанию это значение равно true.- Возвращает:
-
true, если выполнение продолжится после завершения работы - См. также:
setRemoveOnCancelPolicy
public void setRemoveOnCancelPolicy(boolean value)
false.- Параметры:
-
value— еслиtrue, удалять при отмене, иначе не удалять - Начиная с версии:
- 1.7
- См. также:
getRemoveOnCancelPolicy
public boolean getRemoveOnCancelPolicy()
false.- Возвращает:
-
true, если отмененные задачи немедленно удаляются из очереди - Начиная с версии:
- 1.7
- См. также:
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 - Возвращает:
- очередь задач
© 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.