ExecutorCompletionService Classe

Définition

Qui CompletionService utilise un élément fourni Executor pour exécuter des tâches.

[Android.Runtime.Register("java/util/concurrent/ExecutorCompletionService", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "V" })]
public class ExecutorCompletionService : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, 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
Héritage
ExecutorCompletionService
Attributs
Implémente

Remarques

Qui CompletionService utilise un élément fourni Executor pour exécuter des tâches. Cette classe organise les tâches envoyées, une fois terminées, placées sur une file d’attente accessible à l’aide takede . La classe est suffisamment légère pour être adaptée à une utilisation temporaire lors du traitement de groupes de tâches.

<b>Exemples d’utilisation.</b>

Supposons que vous disposez d’un ensemble de résolveurs pour un certain problème, chacun retournant une valeur d’un certain type Resultet souhaitez les exécuter simultanément, en traitant les résultats de chacun d’entre eux qui retournent une valeur non null, dans une certaine méthode use(Result r). Vous pouvez écrire ceci comme suit :

{@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);
              }
            }}

Supposons plutôt que vous souhaitiez utiliser le premier résultat non null de l’ensemble de tâches, en ignorant les exceptions rencontrées et en annulant toutes les autres tâches lorsque la première est prête :

{@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);
            }}

Ajouté à la version 1.5.

Documentation Java pour java.util.concurrent.ExecutorCompletionService.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.

Constructeurs

ExecutorCompletionService(IExecutor)

Crée un ExecutorCompletionService à l’aide de l’exécuteur fourni pour l’exécution de tâche de base et une LinkedBlockingQueue file d’attente d’achèvement.

ExecutorCompletionService(IExecutor, IBlockingQueue)

Crée un ExecutorCompletionService à l’aide de l’exécuteur fourni pour l’exécution de tâche de base et la file d’attente fournie comme file d’attente d’achèvement.

ExecutorCompletionService(IntPtr, JniHandleOwnership)

Constructeur utilisé lors de la création de représentations managées d’objets JNI ; appelée par le runtime.

Propriétés

Class

Retourne la classe runtime de ce Object.

(Hérité de Object)
Handle

Handle de l’instance Android sous-jacente.

(Hérité de Object)
JniIdentityHashCode

Qui CompletionService utilise un élément fourni Executor pour exécuter des tâches.

(Hérité de Object)
JniPeerMembers

Qui CompletionService utilise un élément fourni Executor pour exécuter des tâches.

PeerReference

Qui CompletionService utilise un élément fourni Executor pour exécuter des tâches.

(Hérité de Object)
ThresholdClass

Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code.

ThresholdType

Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code.

Méthodes

Clone()

Crée et retourne une copie de cet objet.

(Hérité de Object)
Dispose()

Qui CompletionService utilise un élément fourni Executor pour exécuter des tâches.

(Hérité de Object)
Dispose(Boolean)

Qui CompletionService utilise un élément fourni Executor pour exécuter des tâches.

(Hérité de Object)
Equals(Object)

Indique si un autre objet est « égal à » celui-ci.

(Hérité de Object)
GetHashCode()

Retourne une valeur de code de hachage pour l'objet.

(Hérité de Object)
JavaFinalize()

Appelé par le garbage collector sur un objet lorsque le garbage collection détermine qu’il n’y a plus de références à l’objet.

(Hérité de Object)
Notify()

Réveille un thread unique qui attend le moniteur de cet objet.

(Hérité de Object)
NotifyAll()

Réveille tous les threads qui attendent le moniteur de cet objet.

(Hérité de Object)
Poll()

Récupère et supprime l’avenir représentant la tâche terminée suivante, ou null si aucune n’est présente.

Poll(Int64, TimeUnit)

Récupère et supprime l’avenir représentant la tâche terminée suivante, en attendant si nécessaire jusqu’au délai d’attente spécifié si aucun n’est encore présent.

PollAsync()

Qui CompletionService utilise un élément fourni Executor pour exécuter des tâches.

PollAsync(Int64, TimeUnit)

Qui CompletionService utilise un élément fourni Executor pour exécuter des tâches.

SetHandle(IntPtr, JniHandleOwnership)

Définit la propriété Handle.

(Hérité de Object)
Submit(ICallable)

Qui CompletionService utilise un élément fourni Executor pour exécuter des tâches.

Submit(IRunnable, Object)

Qui CompletionService utilise un élément fourni Executor pour exécuter des tâches.

Take()

Récupère et supprime l’avenir représentant la tâche terminée suivante, en attente si aucun n’est encore présent.

TakeAsync()

Qui CompletionService utilise un élément fourni Executor pour exécuter des tâches.

ToArray<T>()

Qui CompletionService utilise un élément fourni Executor pour exécuter des tâches.

(Hérité de Object)
ToString()

Retourne une représentation de chaîne de l'objet.

(Hérité de Object)
UnregisterFromRuntime()

Qui CompletionService utilise un élément fourni Executor pour exécuter des tâches.

(Hérité de Object)
Wait()

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti par em ou><em>interrompu</em>.<>

(Hérité de Object)
Wait(Int64)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti< par> em>ou <em>interrompu/em>,< ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

(Hérité de Object)
Wait(Int64, Int32)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti< par> em>ou <em>interrompu/em>,< ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

(Hérité de Object)

Implémentations d’interfaces explicites

IJavaPeerable.Disposed()

Qui CompletionService utilise un élément fourni Executor pour exécuter des tâches.

(Hérité de Object)
IJavaPeerable.DisposeUnlessReferenced()

Qui CompletionService utilise un élément fourni Executor pour exécuter des tâches.

(Hérité de Object)
IJavaPeerable.Finalized()

Qui CompletionService utilise un élément fourni Executor pour exécuter des tâches.

(Hérité de Object)
IJavaPeerable.JniManagedPeerState

Qui CompletionService utilise un élément fourni Executor pour exécuter des tâches.

(Hérité de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Qui CompletionService utilise un élément fourni Executor pour exécuter des tâches.

(Hérité de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Qui CompletionService utilise un élément fourni Executor pour exécuter des tâches.

(Hérité de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Qui CompletionService utilise un élément fourni Executor pour exécuter des tâches.

(Hérité de Object)

Méthodes d’extension

JavaCast<TResult>(IJavaObject)

Effectue une conversion de type vérifiée par le runtime Android.

JavaCast<TResult>(IJavaObject)

Qui CompletionService utilise un élément fourni Executor pour exécuter des tâches.

GetJniTypeName(IJavaPeerable)

Qui CompletionService utilise un élément fourni Executor pour exécuter des tâches.

S’applique à