Spec-Zone.ru › OpenJDK 24

Класс StructuredTaskScope.ShutdownOnFailure

java.lang.Object
java.util.concurrent.StructuredTaskScopePREVIEW<Object>
java.util.concurrent.StructuredTaskScope.ShutdownOnFailure
Все реализованные интерфейсы:
AutoCloseable
Вложенный класс:
StructuredTaskScopePREVIEW<T>
public static final class StructuredTaskScope.ShutdownOnFailure extends StructuredTaskScopePREVIEW<Object>
ShutdownOnFailure — это предварительная версия API платформы Java.
Программы могут использовать ShutdownOnFailure только при включенных предварительных функциях.
Предварительные функции могут быть удалены в будущей версии или обновлены до постоянных функций платформы Java.
Объект, который捕获第一个失败подзадачиPREVIEW исключения. После захвата он закрываетPREVIEW область задач, чтобы прервать незавершенные потоки и разбудить владельца области задач. Реализация этой политики предназначена для случаев, когда требуются результаты всех подзадач («вызвать все»); если какая-либо подзадача завершается неудачно, результаты других незавершенных подзадач больше не нужны.

Если не указано иное, передача null аргумента в метод этого класса приведет к выбросу NullPointerException.

Примечание API:
Этот класс реализует политику закрытия области задач при неудачном выполнении подзадачи. Не должно быть необходимости непосредственно закрывать область задач с помощью метода shutdownPREVIEW.
С момента:
21

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

Вложенные классы/интерфейсы, объявленные в классе java.util.concurrent.StructuredTaskScopePREVIEW

StructuredTaskScope.ShutdownOnFailurePREVIEW, StructuredTaskScope.ShutdownOnSuccessPREVIEW<T>, StructuredTaskScope.SubtaskPREVIEW<T>

Краткое описание конструкторов

Конструктор Описание
ShutdownOnFailure()
Создает новую безымянную ShutdownOnFailure, которая создает виртуальные потоки.
ShutdownOnFailure(String name, ThreadFactory factory)
Создает новую ShutdownOnFailure с заданным именем и фабрикой потоков.

Краткое описание методов

Модификатор и тип Метод Описание
Optional<Throwable> exception()
Возвращает исключение первой подзадачи, которая завершилась с ошибкойPREVIEW.
StructuredTaskScope.ShutdownOnFailurePREVIEW join()
Ожидание завершения всех подзадач, запущенных в этой области задач, или появления ошибки в подзадаче с ошибкойPREVIEW.
StructuredTaskScope.ShutdownOnFailurePREVIEW joinUntil(Instant deadline)
Ожидание завершения всех подзадач, запущенных в этой области задач, или появления ошибки в подзадаче с ошибкойPREVIEW до указанного крайнего срока.
void throwIfFailed()
Выбрасывается, если подзадача завершилась с ошибкойPREVIEW.
<X extends Throwable>
void
throwIfFailed(Function<Throwable, ? extends X> esf)
Выбрасывает исключение, полученное из функции, которая предоставляет исключение, если подзадача завершилась с ошибкойPREVIEW.

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

close, ensureOwnerAndJoined, fork, handleComplete, isShutdown, shutdown

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

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

Подробное описание конструкторов

ShutdownOnFailure

public ShutdownOnFailure(String name, ThreadFactory factory)
Создаёт новый ShutdownOnFailure с заданным именем и фабрикой потоков. Область задач необязательно имеет имя для целей мониторинга и управления. Фабрика потоков используется для create потоков, когда подзадачи разделяютсяПРЕВЬЮ. Область задач принадлежит текущему потоку.

Создание сохраняет привязки значений области текущего потока для наследования потоками, запущенными в области задач. Раздел «Структура дерева» в описании класса подробно описывает, как устанавливаются родительско-дочерние отношения неявно для целей наследования привязок значений области.

Параметры:
name - имя области задач, может быть null
factory - фабрика потоков

ShutdownOnFailure

public ShutdownOnFailure()
Создаёт новую безымянную ShutdownOnFailure, которая создаёт виртуальные потоки.
Требования к реализации:
Этот конструктор эквивалентен вызову конструктора с 2 аргументами с именем null и фабрикой потоков, которая создаёт виртуальные потоки.

Подробное описание методов

join

public StructuredTaskScope.ShutdownOnFailurePREVIEW join() throws InterruptedException
Ожидает завершения всех подзадач, запущенных в этой области задач, или чтобы подзадача ошибласьПРЕВЬЮ.

Этот метод ожидает завершения всех подзадач, ожидая завершения выполнения всех потоков запущенныхПРЕВЬЮ в этой области задач. Он прекращает ожидание, когда все потоки завершаются, подзадача завершается ошибкой или текущий поток прерывается. Он также прекращает ожидание, если метод shutdownПРЕВЬЮ вызывается напрямую для остановки этой области задач.

Этот метод может быть вызван только владельцем области задач.

Переопределяет:
join в классе StructuredTaskScopePREVIEW<Object>
Возвращает:
эту область задач
Издаёт:
IllegalStateException - если эта область задач закрыта
WrongThreadException - если текущий поток не является владельцем области задач
InterruptedException - если прервано во время ожидания

joinUntil

public StructuredTaskScope.ShutdownOnFailurePREVIEW joinUntil(Instant deadline) throws InterruptedException, TimeoutException
Ожидает завершения всех подзадач, запущенных в этой области задач, или чтобы подзадача ошибласьПРЕВЬЮ, до заданного дедлайна.

Этот метод ожидает завершения всех подзадач, ожидая завершения выполнения всех потоков запущенныхПРЕВЬЮ в этой области задач. Он прекращает ожидание, когда все потоки завершаются, подзадача завершается ошибкой, дедлайн достигнут, или текущий поток прерывается. Он также прекращает ожидание, если метод shutdownПРЕВЬЮ вызывается напрямую для остановки этой области задач.

Этот метод может быть вызван только владельцем области задач.

Переопределяет:
joinUntil в классе StructuredTaskScopePREVIEW<Object>
Параметры:
deadline - дедлайн
Возвращает:
эту область задач
Издаёт:
IllegalStateException - если эта область задач закрыта
WrongThreadException - если текущий поток не является владельцем области задач
InterruptedException - если прервано во время ожидания
TimeoutException - если дедлайн достигнут во время ожидания

exception

public Optional<Throwable> exception()
Возвращает исключение первой подзадачи, которая ошибласьПРЕВЬЮ. Если ни одна подзадача не ошиблась, то возвращается пустой Optional.
Возвращает:
исключение первой подзадачи, которая ошиблась, или пустой optional, если ни одна подзадача не ошиблась
Издаёт:
WrongThreadException - если текущий поток не является владельцем области задач
IllegalStateException - если владелец области задач не присоединился после разделения

throwIfFailed

public void throwIfFailed() throws ExecutionException
Бросает исключение, если подзадача ошибласьПРЕВЬЮ. Если любая подзадача ошиблась с исключением, то брошено ExecutionException с исключением первой подзадачи, которая ошиблась, как причина. Этот метод ничего не делает, если ни одна подзадача не ошиблась.
Издаёт:
ExecutionException - если подзадача ошиблась
WrongThreadException - если текущий поток не является владельцем области задач
IllegalStateException - если владелец области задач не присоединился после разделения

throwIfFailed

public <X extends Throwable> void throwIfFailed(Function<Throwable, ? extends X> esf) throws X
Бросает исключение, созданное заданной функцией обработки исключений, если подзадача ошибласьПРЕВЬЮ. Если любая подзадача завершилась с исключением, то функция вызывается с исключением первой подзадачи, которая ошиблась. Возвращённое функцией исключение брошено. Этот метод ничего не делает, если ни одна подзадача не завершилась ошибкой.
Параметры типа:
X - тип исключения, которое будет брошено
Параметры:
esf - функция обработки исключений
Издаёт:
X - созданное функцией обработки исключений
WrongThreadException - если текущий поток не является владельцем области задач
IllegalStateException - если владелец области задач не присоединился после разделения

© 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/StructuredTaskScope.ShutdownOnFailure.html

Spec-Zone.ru

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