Spec-Zone.ru › OpenJDK 24

Класс 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.
Since:
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 с заданным именем и фабрикой потоков. Область задач необязательно получает имя для целей мониторинга и управления. Фабрика потоков используется для создания потоков при распараллеливании подзадачПРЕВЬЮ. Область задач принадлежит текущему потоку.

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

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

ShutdownOnSuccess

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

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

join

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

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

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

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

joinUntil

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

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

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

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

result

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

Если ни одна подзадача не завершилась успешно, но подзадача не удаласьПРЕВЬЮ, то выбрасывается ExecutionException с исключением подзадачи в качестве причины.

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

result

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

Если ни одна подзадача не завершилась успешно, но подзадача не удаласьПРЕВЬЮ, то вызывается функция обработки исключений с исключением подзадачи.

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

© 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.ShutdownOnSuccess.html

Spec-Zone.ru

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