Spec-Zone.ru › OpenJDK 21

Класс StructuredTaskScope.ShutdownOnSuccess<T>

java.lang.Object
java.util.concurrent.StructuredTaskScopePREVIEW<T>
java.util.concurrent.StructuredTaskScope.ShutdownOnSuccess<T>
Type Parameters:
T - тип результата
Все реализуемые интерфейсы:
AutoCloseable
Вложенный класс:
StructuredTaskScopePREVIEW<T>
public static final class StructuredTaskScope.ShutdownOnSuccess<T> extends StructuredTaskScopePREVIEW<T>
ShutdownOnSuccess — это предварительный API платформы Java.
Программы могут использовать ShutdownOnSuccess только при включенных предварительных функциях.
Предварительные функции могут быть удалены в будущих версиях или обновлены до постоянных функций платформы Java.
Политика, которая захватывает результат первого подзадачи, завершившейся успешноPREVIEW. После захвата она останавливаетPREVIEW область задач, чтобы прервать незавершенные потоки и разбудить владельца области задач. Эта политика предназначена для случаев, когда результат любой подзадачи достаточен («вызвать любую») и результаты других незавершенных подзадач больше не нужны.

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

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

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

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

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

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

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

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

Модификатор и тип Метод Описание
StructuredTaskScope.ShutdownOnSuccessPREVIEW<T> join()
Ожидание завершения подзадачи, запущенной в этой области задач, с успехомPREVIEW или завершения всех подзадач.
StructuredTaskScope.ShutdownOnSuccessPREVIEW<T> joinUntil(Instant deadline)
Ожидание завершения подзадачи, запущенной в этой области задач, с успехомPREVIEW или завершения всех подзадач до указанного срока.
T result()
Возвращает результат первой подзадачи, завершившейся успешноPREVIEW.
<X extends Throwable>
T
result(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

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

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 или завершения всех подзадач.

Этот метод ожидает завершения всех подзадач, ожидая завершения всех потоков запущенныхPREVIEW в этой области задач. Ожидание прекращается, когда все потоки завершаются, подзадача завершается успешно, или текущий поток прерывается. Ожидание также прекращается, если метод shutdownPREVIEW вызывается непосредственно для завершения этой области задач.

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

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

joinUntil

public StructuredTaskScope.ShutdownOnSuccessPREVIEW<T> joinUntil(Instant deadline) throws InterruptedException, TimeoutException
Ожидание завершения подзадачи, запущенной в этой области задач, успешноPREVIEW или завершения всех подзадач до указанного крайнего срока.

Этот метод ожидает завершения всех подзадач, ожидая завершения всех потоков запущенныхPREVIEW в этой области задач. Ожидание прекращается, когда все потоки завершаются, подзадача завершается успешно, крайний срок достигается, или текущий поток прерывается. Ожидание также прекращается, если метод shutdownPREVIEW вызывается непосредственно для завершения этой области задач.

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

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

result

public T result() throws ExecutionException
Возвращает результат первой подзадачи, которая завершилась успешноPREVIEW.

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

Возвращает:
результат первой подзадачи, которая завершилась успешноPREVIEW
Исключения:
ExecutionException - если ни одна подзадача не завершилась успешно, но хотя бы одна подзадача завершилась ошибкой
IllegalStateException - если ни одна подзадача не завершилась или владелец области задач не присоединился после разветвления
WrongThreadException - если текущий поток не является владельцем области задач

result

public <X extends Throwable> T result(Function<Throwable,? extends X> esf) throws X
Возвращает результат первой подзадачи, которая завершилась успешноPREVIEW, в противном случае выбрасывает исключение, произведённое заданной функцией генерации исключений.

Если ни одна подзадача не завершилась успешно, но подзадача ошибочна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

Spec-Zone.ru

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