Интерфейс StructuredTaskScope.Subtask<T>
- Параметры типа:
T— тип результата
- Все суперинтерфейсы:
Supplier<T>
- Включающий интерфейс:
StructuredTaskScopePREVIEW<T, R, R_X extends Throwable>
public static sealed interface StructuredTaskScope.Subtask<T> extends Supplier<T>
Subtask — это предварительная версия API платформы Java. StructuredTaskScopeПРЕДВАРИТЕЛЬНАЯ ВЕРСИЯ с помощью fork(Callable)ПРЕДВАРИТЕЛЬНАЯ ВЕРСИЯ или fork(Runnable)ПРЕДВАРИТЕЛЬНАЯ ВЕРСИЯ. Владелец области видимости может использовать метод get() после присоединенияПРЕДВАРИТЕЛЬНАЯ ВЕРСИЯ, чтобы получить результат успешно завершившейся подзадачи. Метод exception() позволяет получить исключение, выброшенное подзадачей, завершившейся с ошибкой.
- С версии:
- 21
Краткое описание вложенных классов
| Модификатор и тип | Интерфейс | Описание |
|---|---|---|
static enum |
StructuredTaskScope.Subtask.StatePREVIEW |
Предварительная версия. Представляет состояние SubtaskПРЕДВАРИТЕЛЬНАЯ ВЕРСИЯ. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Throwable |
exception() |
Возвращает исключение или ошибку, выброшенные этой подзадачей, если она завершилась с ошибкой. |
T |
get() |
Возвращает результат этой подзадачи, если она завершилась успешно. |
StructuredTaskScope.Subtask.StatePREVIEW |
state() |
Возвращает состояние подзадачи. |
Подробное описание методов
state
StructuredTaskScope.Subtask.StatePREVIEW state()
- Возвращает:
- состояние подзадачи
get
T get()
fork(Callable)ПРЕДВАРИТЕЛЬНАЯ ВЕРСИЯ, возвращается результат метода call(). Если подзадача была запущена с помощью fork(Runnable)ПРЕДВАРИТЕЛЬНАЯ ВЕРСИЯ, возвращается null. Код, выполняющийся в потоке владельца области видимости, может использовать этот метод для получения результата успешно завершившейся подзадачи после присоединенияПРЕДВАРИТЕЛЬНАЯ ВЕРСИЯ.
Код, выполняющийся в методе Joiner onComplete(Subtask)ПРЕДВАРИТЕЛЬНАЯ ВЕРСИЯ, должен проверить, что состояние равно SUCCESSПРЕДВАРИТЕЛЬНАЯ ВЕРСИЯ, прежде чем использовать этот метод для получения результата.
Этот метод можно вызвать из любого потока после присоединения владельца области видимости. Единственный случай, когда этот метод можно использовать для получения результата до присоединения владельца области видимости, — вызов из метода onComplete(Subtask).
- Определено в:
-
getв интерфейсеSupplier<T> - Возвращает:
- возможно, null-результат
- Выбрасывает:
-
IllegalStateException— если подзадача не завершилась или завершилась неуспешно либо если этот метод вызван вне контекста методаonComplete(Subtask)до присоединения потока владельца - См. также:
exception
Throwable exception()
fork(Callable)ПРЕДВАРИТЕЛЬНАЯ ВЕРСИЯ, возвращается исключение или ошибка, выброшенные методом call(). Если подзадача была запущена с помощью fork(Runnable)ПРЕДВАРИТЕЛЬНАЯ ВЕРСИЯ, возвращается исключение или ошибка, выброшенные методом run(). Код, выполняющийся в потоке владельца области видимости, может использовать этот метод для получения исключения, выброшенного подзадачей, завершившейся с ошибкой, после присоединенияПРЕДВАРИТЕЛЬНАЯ ВЕРСИЯ.
Код, выполняющийся в методе Joiner onComplete(Subtask)ПРЕДВАРИТЕЛЬНАЯ ВЕРСИЯ, должен проверить, что состояние равно FAILEDПРЕДВАРИТЕЛЬНАЯ ВЕРСИЯ, прежде чем использовать этот метод для получения исключения.
Этот метод можно вызвать из любого потока после присоединения владельца области видимости. Единственный случай, когда этот метод можно использовать для получения исключения до присоединения владельца области видимости, — вызов из метода onComplete(Subtask).
- Возвращает:
- исключение или ошибку, выброшенные этой подзадачей, если она завершилась с ошибкой
- Выбрасывает:
-
IllegalStateException— если подзадача не завершилась или завершилась с результатом либо если этот метод вызван вне контекста методаonComplete(Subtask)до присоединения потока владельца - См. также:
© 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.
Subtaskтолько при включённых предварительных функциях.