Condividi tramite


ExecutorCompletionService Classe

Definizione

Oggetto CompletionService che utilizza un oggetto fornito Executor per eseguire le attività.

[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
Ereditarietà
ExecutorCompletionService
Attributi
Implementazioni

Commenti

Oggetto CompletionService che utilizza un oggetto fornito Executor per eseguire le attività. Questa classe dispone che le attività inviate siano, al termine, inserite in una coda accessibile tramite take. La classe è sufficientemente leggera da essere adatta per l'uso temporaneo durante l'elaborazione di gruppi di attività.

<b>Esempi di utilizzo.</b>

Si supponga di avere un set di risolutori per un determinato problema, ognuno dei quali restituisce un valore di tipo Resulte vuole eseguirli contemporaneamente, elaborando i risultati di ognuno di essi che restituiscono un valore non Null, in un metodo use(Result r). È possibile scrivere quanto segue:

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

Si supponga invece di voler usare il primo risultato non Null del set di attività, ignorando eventuali eccezioni e annullando tutte le altre attività quando la prima è pronta:

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

Aggiunto nella versione 1.5.

Documentazione java per java.util.concurrent.ExecutorCompletionService.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

Costruttori

ExecutorCompletionService(IExecutor)

Crea un executorCompletionService usando l'executor fornito per l'esecuzione dell'attività di base e un LinkedBlockingQueue oggetto come coda di completamento.

ExecutorCompletionService(IExecutor, IBlockingQueue)

Crea un executorCompletionService usando l'executor fornito per l'esecuzione dell'attività di base e la coda fornita come coda di completamento.

ExecutorCompletionService(IntPtr, JniHandleOwnership)

Costruttore usato durante la creazione di rappresentazioni gestite di oggetti JNI; chiamato dal runtime.

Proprietà

Class

Restituisce la classe di runtime di questo Objectoggetto .

(Ereditato da Object)
Handle

Handle per l'istanza di Android sottostante.

(Ereditato da Object)
JniIdentityHashCode

Oggetto CompletionService che utilizza un oggetto fornito Executor per eseguire le attività.

(Ereditato da Object)
JniPeerMembers

Oggetto CompletionService che utilizza un oggetto fornito Executor per eseguire le attività.

PeerReference

Oggetto CompletionService che utilizza un oggetto fornito Executor per eseguire le attività.

(Ereditato da Object)
ThresholdClass

Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice.

ThresholdType

Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice.

Metodi

Clone()

Crea e restituisce una copia di questo oggetto.

(Ereditato da Object)
Dispose()

Oggetto CompletionService che utilizza un oggetto fornito Executor per eseguire le attività.

(Ereditato da Object)
Dispose(Boolean)

Oggetto CompletionService che utilizza un oggetto fornito Executor per eseguire le attività.

(Ereditato da Object)
Equals(Object)

Indica se un altro oggetto è "uguale a" questo.

(Ereditato da Object)
GetHashCode()

Restituisce un valore del codice hash per l'oggetto.

(Ereditato da Object)
JavaFinalize()

Chiamato dal Garbage Collector su un oggetto quando Garbage Collection determina che non sono presenti altri riferimenti all'oggetto .

(Ereditato da Object)
Notify()

Riattiva un singolo thread in attesa del monitor dell'oggetto.

(Ereditato da Object)
NotifyAll()

Riattiva tutti i thread in attesa del monitor dell'oggetto.

(Ereditato da Object)
Poll()

Recupera e rimuove l'oggetto Future che rappresenta l'attività completata successiva o null se non sono presenti.

Poll(Int64, TimeUnit)

Recupera e rimuove l'oggetto Future che rappresenta l'attività completata successiva, in attesa, se necessario, fino al tempo di attesa specificato se non sono ancora presenti.

PollAsync()

Oggetto CompletionService che utilizza un oggetto fornito Executor per eseguire le attività.

PollAsync(Int64, TimeUnit)

Oggetto CompletionService che utilizza un oggetto fornito Executor per eseguire le attività.

SetHandle(IntPtr, JniHandleOwnership)

Imposta la proprietà Handle.

(Ereditato da Object)
Submit(ICallable)

Oggetto CompletionService che utilizza un oggetto fornito Executor per eseguire le attività.

Submit(IRunnable, Object)

Oggetto CompletionService che utilizza un oggetto fornito Executor per eseguire le attività.

Take()

Recupera e rimuove l'oggetto Future che rappresenta l'attività completata successiva, in attesa che nessuno sia ancora presente.

TakeAsync()

Oggetto CompletionService che utilizza un oggetto fornito Executor per eseguire le attività.

ToArray<T>()

Oggetto CompletionService che utilizza un oggetto fornito Executor per eseguire le attività.

(Ereditato da Object)
ToString()

Restituisce una rappresentazione di stringa dell'oggetto.

(Ereditato da Object)
UnregisterFromRuntime()

Oggetto CompletionService che utilizza un oggetto fornito Executor per eseguire le attività.

(Ereditato da Object)
Wait()

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo <>una notifica</em> o <em>interrotto</em>.

(Ereditato da Object)
Wait(Int64)

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo>< una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale.

(Ereditato da Object)
Wait(Int64, Int32)

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo>< una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

IJavaPeerable.Disposed()

Oggetto CompletionService che utilizza un oggetto fornito Executor per eseguire le attività.

(Ereditato da Object)
IJavaPeerable.DisposeUnlessReferenced()

Oggetto CompletionService che utilizza un oggetto fornito Executor per eseguire le attività.

(Ereditato da Object)
IJavaPeerable.Finalized()

Oggetto CompletionService che utilizza un oggetto fornito Executor per eseguire le attività.

(Ereditato da Object)
IJavaPeerable.JniManagedPeerState

Oggetto CompletionService che utilizza un oggetto fornito Executor per eseguire le attività.

(Ereditato da Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Oggetto CompletionService che utilizza un oggetto fornito Executor per eseguire le attività.

(Ereditato da Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Oggetto CompletionService che utilizza un oggetto fornito Executor per eseguire le attività.

(Ereditato da Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Oggetto CompletionService che utilizza un oggetto fornito Executor per eseguire le attività.

(Ereditato da Object)

Metodi di estensione

JavaCast<TResult>(IJavaObject)

Esegue una conversione del tipo di tipo controllato dal runtime Android.

JavaCast<TResult>(IJavaObject)

Oggetto CompletionService che utilizza un oggetto fornito Executor per eseguire le attività.

GetJniTypeName(IJavaPeerable)

Oggetto CompletionService che utilizza un oggetto fornito Executor per eseguire le attività.

Si applica a