Класс StructuredTaskScope.ShutdownOnSuccess<T>
- Type Parameters:
-
T- тип результата
- Все реализуемые интерфейсы:
AutoCloseable
- Вложенный класс:
StructuredTaskScopePREVIEW<T>
public static final class StructuredTaskScope.ShutdownOnSuccess<T> extends StructuredTaskScopePREVIEW<T>
ShutdownOnSuccess — это предварительный API платформы Java. Если не указано иное, передача null аргумента методу в этом классе вызовет исключение NullPointerException.
- Примечание API:
- Этот класс реализует политику остановки области задач при успешном завершении подзадачи. Не должно быть необходимости в явной остановке области задач с помощью метода
shutdownPREVIEW. - С:
- 21
Краткое описание вложенных классов
Вложенные классы/интерфейсы, объявленные в классе java.util.concurrent.StructuredTaskScopePREVIEW
StructuredTaskScope.ShutdownOnFailurePREVIEW, StructuredTaskScope.ShutdownOnSuccessPREVIEW<T>, StructuredTaskScope.SubtaskPREVIEW<T>
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
ShutdownOnSuccess() |
Создает новую безымянную ShutdownOnSuccess, которая создает виртуальные потоки. |
ShutdownOnSuccess |
Создает новую ShutdownOnSuccess с заданным именем и фабрикой потоков. |
Краткое описание методов
Методы, объявленные в классе java.util.concurrent.StructuredTaskScopePREVIEW
close, ensureOwnerAndJoined, fork, handleComplete, isShutdown, shutdown
Подробное описание конструкторов
ShutdownOnSuccess
public ShutdownOnSuccess(String name, ThreadFactory factory)
ShutdownOnSuccess с заданным именем и фабрикой потоков. Область задач необязательно имеет имя для мониторинга и управления. Фабрика потоков используется для создания потоков при разветвлении подзадач forkPREVIEW. Область задач принадлежит текущему потоку. Конструирование захватывает текущие привязки области значенийPREVIEW потока для наследования потоками, запущенными в области задач. Раздел Структура дерева в описании класса подробно описывает, как устанавливаются родительско-детские отношения в рамках наследования привязок области значений.
- Параметры:
-
name- имя области задач, может быть null -
factory- фабрика потоков
ShutdownOnSuccess
public ShutdownOnSuccess()
ShutdownOnSuccess, который создаёт виртуальные потоки.- Требования к реализации:
- Этот конструктор эквивалентен вызову конструктора с 2 аргументами с именем
nullи фабрикой потоков, создающей виртуальные потоки.
Подробное описание методов
join
public StructuredTaskScope.ShutdownOnSuccessPREVIEW<T> join() throws InterruptedException
Этот метод ожидает завершения всех подзадач, ожидая завершения всех потоков запущенныхPREVIEW в этой области задач. Ожидание прекращается, когда все потоки завершаются, подзадача завершается успешно, или текущий поток прерывается. Ожидание также прекращается, если метод shutdownPREVIEW вызывается непосредственно для завершения этой области задач.
Этот метод может быть вызван только владельцем области задач.
- Переопределяет:
-
joinв классеStructuredTaskScopePREVIEW<T> - Возвращает:
- эту область задач
- Исключения:
-
IllegalStateException- если эта область задач закрыта -
WrongThreadException- если текущий поток не является владельцем области задач -
InterruptedException- если прервано ожидание
joinUntil
public StructuredTaskScope.ShutdownOnSuccessPREVIEW<T> joinUntil(Instant deadline) throws InterruptedException, TimeoutException
Этот метод ожидает завершения всех подзадач, ожидая завершения всех потоков запущенныхPREVIEW в этой области задач. Ожидание прекращается, когда все потоки завершаются, подзадача завершается успешно, крайний срок достигается, или текущий поток прерывается. Ожидание также прекращается, если метод shutdownPREVIEW вызывается непосредственно для завершения этой области задач.
Этот метод может быть вызван только владельцем области задач.
- Переопределяет:
-
joinUntilв классеStructuredTaskScopePREVIEW<T> - Параметры:
-
deadline- крайний срок - Возвращает:
- эту область задач
- Исключения:
-
IllegalStateException- если эта область задач закрыта -
WrongThreadException- если текущий поток не является владельцем области задач -
InterruptedException- если прервано ожидание -
TimeoutException- если крайний срок истек во время ожидания
result
public T result() throws ExecutionException
Если ни одна подзадача не завершилась успешно, но подзадача ошибочнаPREVIEW, то выбрасывается ExecutionException с исключением подзадачи как причиной.
- Возвращает:
- результат первой подзадачи, которая завершилась успешноPREVIEW
- Исключения:
-
ExecutionException- если ни одна подзадача не завершилась успешно, но хотя бы одна подзадача завершилась ошибкой -
IllegalStateException- если ни одна подзадача не завершилась или владелец области задач не присоединился после разветвления -
WrongThreadException- если текущий поток не является владельцем области задач
result
public <X extends Throwable> T result(Function<Throwable,? extends X> esf) throws X
Если ни одна подзадача не завершилась успешно, но подзадача ошибочнаPREVIEW, то вызывается функция генерации исключений с исключением подзадачи.
- Параметры типа:
-
X- тип исключения, которое должно быть выброшено - Параметры:
-
esf- функция генерации исключений - Возвращает:
- результат первой подзадачи, которая завершилась с результатом
- Исключения:
-
X- если ни одна подзадача не завершилась успешно, но хотя бы одна подзадача завершилась ошибкой -
IllegalStateException- если ни одна подзадача не завершилась или владелец области задач не присоединился после разветвления -
WrongThreadException- если текущий поток не является владельцем области задач
© 1993, 2023, 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/21/docs/api/java.base/java/util/concurrent/StructuredTaskScope.ShutdownOnSuccess.html
ShutdownOnSuccessтолько при включенных предварительных функциях.