ExecutorCompletionService Класс

Определение

Объект, CompletionService который использует предоставленный Executor для выполнения задач.

[Android.Runtime.Register("java/util/concurrent/ExecutorCompletionService", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "V" })]
public class ExecutorCompletionService : Java.Lang.Object, IDisposable, Java.Util.Concurrent.ICompletionService
[<Android.Runtime.Register("java/util/concurrent/ExecutorCompletionService", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "V" })>]
type ExecutorCompletionService = class
    inherit Object
    interface ICompletionService
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
Наследование
ExecutorCompletionService
Атрибуты
Реализации

Комментарии

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

<Примеры использования.></b>

Предположим, что у вас есть набор решателей для определенной проблемы, каждый возвращающий значение определенного типа Result, и хотел бы одновременно выполнять их, обрабатывая результаты каждого из них, возвращающего значение, отличное от NULL, в некоторых методах use(Result r). Вы можете написать следующее:

{@code
            void solve(Executor e,
                       Collection<Callable<Result>> solvers)
                throws InterruptedException, ExecutionException {
              CompletionService<Result> cs
                  = new ExecutorCompletionService<>(e);
              solvers.forEach(cs::submit);
              for (int i = solvers.size(); i > 0; i--) {
                Result r = cs.take().get();
                if (r != null)
                  use(r);
              }
            }}

Предположим, что вы хотите использовать первый ненулевой результат набора задач, игнорируя все исключения и отменяя все остальные задачи, когда первый будет готов:

{@code
            void solve(Executor e,
                       Collection<Callable<Result>> solvers)
                throws InterruptedException {
              CompletionService<Result> cs
                  = new ExecutorCompletionService<>(e);
              int n = solvers.size();
              List<Future<Result>> futures = new ArrayList<>(n);
              Result result = null;
              try {
                solvers.forEach(solver -> futures.add(cs.submit(solver)));
                for (int i = n; i > 0; i--) {
                  try {
                    Result r = cs.take().get();
                    if (r != null) {
                      result = r;
                      break;
                    }
                  } catch (ExecutionException ignore) {}
                }
              } finally {
                futures.forEach(future -> future.cancel(true));
              }

              if (result != null)
                use(result);
            }}

Добавлено в версии 1.5.

Java документации по java.util.concurrent.ExecutorCompletionService.

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Конструкторы

Имя Описание
ExecutorCompletionService(IExecutor, IBlockingQueue)

Создает службу ExecutionorCompletionService с помощью предоставленного исполнителя для выполнения базовой задачи и указанной очереди в качестве очереди завершения.

ExecutorCompletionService(IExecutor)

Создает службу ExecutionorCompletionService с помощью предоставленного исполнителя для выполнения базовой задачи и LinkedBlockingQueue очереди завершения.

ExecutorCompletionService(IntPtr, JniHandleOwnership)

Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения.

Свойства

Имя Описание
Class

Возвращает класс среды выполнения этого Objectобъекта.

(Унаследовано от Object)
Handle

Дескриптор базового экземпляра Android.

(Унаследовано от Object)
JniIdentityHashCode

Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия.

(Унаследовано от Object)
JniManagedPeerState

Объект, CompletionService который использует предоставленный Executor для выполнения задач.

(Унаследовано от JavaObject)
JniPeerMembers

Объект, CompletionService который использует предоставленный Executor для выполнения задач.

PeerReference

Возвращает ссылку на объект JNI для этого Java однорангового узла.

(Унаследовано от Object)
ThresholdClass

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

ThresholdType

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

Методы

Имя Описание
Clone()

Создает и возвращает копию этого объекта.

(Унаследовано от Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

Объект, CompletionService который использует предоставленный Executor для выполнения задач.

(Унаследовано от JavaObject)
Dispose()

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

(Унаследовано от Object)
Dispose(Boolean)

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

(Унаследовано от Object)
DisposeUnlessReferenced()

Объект, CompletionService который использует предоставленный Executor для выполнения задач.

(Унаследовано от JavaObject)
Equals(Object)

Объект, CompletionService который использует предоставленный Executor для выполнения задач.

(Унаследовано от JavaObject)
Equals(Object)

Указывает, равен ли другой объект этому объекту.

(Унаследовано от Object)
GetHashCode()

Возвращает хэш-значение кода для объекта.

(Унаследовано от Object)
JavaFinalize()

Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет.

(Унаследовано от Object)
Notify()

Просыпается один поток, ожидающий монитора этого объекта.

(Унаследовано от Object)
NotifyAll()

Просыпает все потоки, ожидающие монитора этого объекта.

(Унаследовано от Object)
Poll()

Извлекает и удаляет будущее, представляющее следующую завершенную задачу или null нет.

Poll(Int64, TimeUnit)

Извлекает и удаляет будущее, представляющее следующую завершенную задачу, ожидая до указанного времени ожидания, если нет.

PollAsync()

Объект, CompletionService который использует предоставленный Executor для выполнения задач.

PollAsync(Int64, TimeUnit)

Объект, CompletionService который использует предоставленный Executor для выполнения задач.

SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

(Унаследовано от Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Объект, CompletionService который использует предоставленный Executor для выполнения задач.

(Унаследовано от JavaObject)
Submit(ICallable)

Объект, CompletionService который использует предоставленный Executor для выполнения задач.

Submit(IRunnable, Object)

Объект, CompletionService который использует предоставленный Executor для выполнения задач.

Take()

Извлекает и удаляет будущее, представляющее следующую завершенную задачу, ожидая, пока нет.

TakeAsync()

Объект, CompletionService который использует предоставленный Executor для выполнения задач.

ToArray<T>()

Создает управляемый массив из этого Java оболочки массива.

(Унаследовано от Object)
ToString()

Возвращает строковое представление объекта.

(Унаследовано от Object)
UnregisterFromRuntime()

Отменяет регистрацию этого Java однорангового узла из среды выполнения взаимодействия.

(Унаследовано от Object)
Wait()

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, путем <><уведомления/>em или <эм>прерванного</em.>

(Унаследовано от Object)
Wait(Int64, Int32)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)
Wait(Int64)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)

Явные реализации интерфейса

Имя Описание
IJavaPeerable.Disposed()

Объект, CompletionService который использует предоставленный Executor для выполнения задач.

(Унаследовано от JavaObject)
IJavaPeerable.Finalized()

Объект, CompletionService который использует предоставленный Executor для выполнения задач.

(Унаследовано от JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Объект, CompletionService который использует предоставленный Executor для выполнения задач.

(Унаследовано от JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Объект, CompletionService который использует предоставленный Executor для выполнения задач.

(Унаследовано от JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Объект, CompletionService который использует предоставленный Executor для выполнения задач.

(Унаследовано от JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Объект, CompletionService который использует предоставленный Executor для выполнения задач.

(Унаследовано от JavaObject)
IJavaPeerable.UnregisterFromRuntime()

Объект, CompletionService который использует предоставленный Executor для выполнения задач.

Методы расширения

Имя Описание
GetJniTypeName(IJavaPeerable)

Возвращает имя JNI типа экземпляра self.

JavaAs<TResult>(IJavaPeerable)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверяемого средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Объект, CompletionService который использует предоставленный Executor для выполнения задач.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

Применяется к