Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> java

Java 9 CompletableFuture API: таймауты, субклассинг, фабричные методы

CompletableFuture (Java 8) представляет будущий результат, который можно завершить явно. Java 9 усилила API.

Поддержка задержек и таймаутов

public CompletableFuture<T> completeOnTimeout(T value, long timeout, TimeUnit unit)

Завершает фьючер значением value, если не завершился раньше таймаута.

public CompletableFuture<T> orTimeout(long timeout, TimeUnit unit)

Исключительно завершает фьючер TimeoutException, если не завершился вовремя.

Улучшенная поддержка наследования

public Executor defaultExecutor()

Возвращает Executor для async-методов без явного executor. Можно переопределить в подклассе для предоставления своего пула потоков (минимум один независимый поток).

public <U> CompletableFuture<U> newIncompleteFuture()

Возвращает новый незавершённый фьючер того же типа. Подклассы должны переопределять для возврата своего типа. По умолчанию — CompletableFuture.

Новые фабричные методы

public static <U> CompletableFuture<U> completedFuture(U value)

Возвращает уже завершённый фьючер со значением.

public static <U> CompletionStage<U> completedStage(U value)

Уже завершённый CompletionStage (только методы интерфейса).

public static <U> CompletionStage<U> failedStage(Throwable ex)

Уже исключительно завершённый CompletionStage с данным исключением.

Эти изменения делают CompletableFuture гибче для таймаутов, наследования и создания предзавершённых стадий.

java

  1. Шесть ключевых инноваций, ускоряющих производительность криптографического железа
  2. Построение надёжного Temperature & Sensor API на Raspberry Pi с модулем GY‑91
  3. Чертеж повышения надежности оборудования: Структурированный 5-шаговый план
  4. Allegheny Power инвестирует $156 млн в обновление надежности в Западной Вирджинии
  5. Расширьте функциональность вашего CMMS с надежным API
  6. Java 9 (JDK 9): ключевые возможности и преимущества
  7. Java 9 Process API: ключевые улучшения и новые возможности
  8. Java 9 Stream API Enhancements: takeWhile, dropWhile, iterate, ofNullable
  9. Java 9: новые методы Optional (stream, ifPresentOrElse, or)
  10. Java 9 Multi-Resolution Image API: адаптивная графика