Spec-Zone.ru › OpenJDK 17

Интерфейс CompletionService<V>

Все известные реализующие классы:
ExecutorCompletionService
public interface CompletionService<V>
Сервис, который отвязывает создание новых асинхронных задач от потребления результатов завершенных задач. Производители submit задачи для выполнения. Потребители take завершенные задачи и обрабатывают их результаты в порядке их завершения. Сервис CompletionService может, например, использоваться для управления асинхронным вводом-выводом, в котором задачи, выполняющие чтения, отправляются в одной части программы или системы, а затем обрабатываются в другой части программы, когда чтения завершаются, возможно, в другом порядке, чем они были запрошены.

Обычно сервис CompletionService полагается на отдельный Executor для фактического выполнения задач, в этом случае сервис CompletionService только управляет внутренней очередью завершения. Класс ExecutorCompletionService предоставляет реализацию этого подхода.

Влияние согласованности памяти: Действия в потоке до отправки задачи в сервис CompletionService предшествуют действиям, выполненным этой задачей, которые, в свою очередь, предшествуют действиям, следующим за успешным возвращением из соответствующего take().

С:
1.5

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

Модификатор и тип Метод Описание
Future<V> poll()
Возвращает и удаляет Future, представляющую следующую завершенную задачу, или null, если таковых нет.
Future<V> poll(long timeout, TimeUnit unit)
Возвращает и удаляет Future, представляющую следующую завершенную задачу, ожидая, если необходимо, до указанного времени ожидания, если таковых еще нет.
Future<V> submit(Runnable task, V result)
Отправляет задачу Runnable на выполнение и возвращает Future, представляющую эту задачу.
Future<V> submit(Callable<V> task)
Отправляет задачу, возвращающую значение, на выполнение и возвращает Future, представляющую ожидаемые результаты задачи.
Future<V> take()
Возвращает и удаляет Future, представляющую следующую завершенную задачу, ожидая, если таковых еще нет.

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

submit

Future<V> submit(Callable<V> task)
Отправляет задачу, возвращающую значение, на выполнение и возвращает Future, представляющую ожидаемые результаты задачи. После завершения, эта задача может быть взята или опрошена.
Параметры:
task - отправляемая задача
Возвращает:
Future, представляющее ожидаемое завершение задачи
Исключения:
RejectedExecutionException - если задача не может быть запланирована для выполнения
NullPointerException - если задача null

submit

Future<V> submit(Runnable task, V result)
Отправляет задачу Runnable на выполнение и возвращает Future, представляющую эту задачу. После завершения, эта задача может быть взята или опрошена.
Параметры:
task - отправляемая задача
result - возвращаемое значение при успешном завершении
Возвращает:
Future, представляющее ожидаемое завершение задачи, и чья get() метод вернет заданное значение результата при завершении
Исключения:
RejectedExecutionException - если задача не может быть запланирована для выполнения
NullPointerException - если задача null

take

Future<V> take() throws InterruptedException
Возвращает и удаляет Future, представляющую следующую завершенную задачу, ожидая, если таковых еще нет.
Возвращает:
Future, представляющая следующую завершенную задачу
Исключения:
InterruptedException - если прервано во время ожидания

poll

Future<V> poll()
Возвращает и удаляет Future, представляющую следующую завершенную задачу, или null если таковых нет.
Возвращает:
Future, представляющая следующую завершенную задачу, или null если таковых нет

poll

Future<V> poll(long timeout, TimeUnit unit) throws InterruptedException
Возвращает и удаляет Future, представляющую следующую завершенную задачу, ожидая, если необходимо, до указанного времени ожидания, если таковых еще нет.
Параметры:
timeout - время ожидания до отказа, в единицах unit
unit - TimeUnit определяющая, как интерпретировать timeout параметр
Возвращает:
Future, представляющую следующую завершенную задачу или null если заданное время ожидания истекло до того, как какая-либо будет присутствовать
Исключения:
InterruptedException - если прервано во время ожидания

© 1993, 2021, 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/17/docs/api/java.base/java/util/concurrent/CompletionService.html

Spec-Zone.ru

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