Condividi tramite


AsynchronousChannelGroup Classe

Definizione

Raggruppamento di canali asincroni allo scopo della condivisione delle risorse.

[Android.Runtime.Register("java/nio/channels/AsynchronousChannelGroup", ApiSince=26, DoNotGenerateAcw=true)]
public abstract class AsynchronousChannelGroup : Java.Lang.Object
[<Android.Runtime.Register("java/nio/channels/AsynchronousChannelGroup", ApiSince=26, DoNotGenerateAcw=true)>]
type AsynchronousChannelGroup = class
    inherit Object
Ereditarietà
AsynchronousChannelGroup
Attributi

Commenti

Raggruppamento di canali asincroni allo scopo della condivisione delle risorse.

Un gruppo di canali asincrono incapsula i meccanismi necessari per gestire il completamento delle operazioni di I/O avviate da AsynchronousChannel asynchronous channels associati al gruppo. Un gruppo ha un pool di thread associato a cui vengono inviate le attività per gestire gli eventi di I/O e l'invio a CompletionHandler completion-handlers che utilizzano il risultato delle operazioni asincrone eseguite sui canali nel gruppo. Oltre a gestire gli eventi di I/O, i thread in pool possono anche eseguire altre attività necessarie per supportare l'esecuzione di operazioni di I/O asincrone.

Un gruppo di canali asincrono viene creato richiamando i #withFixedThreadPool withFixedThreadPool metodi o #withCachedThreadPool withCachedThreadPool definiti qui. I canali sono associati a un gruppo specificando il gruppo durante la costruzione del canale. Il pool di thread associato è <di>proprietà</em> dal gruppo. La terminazione del gruppo comporta l'arresto del pool di thread associato.

Oltre ai gruppi creati in modo esplicito, la macchina virtuale Java gestisce un gruppo</em>> predefinito a livello <di sistema costruito automaticamente. I canali asincroni che non specificano un gruppo in fase di costruzione sono associati al gruppo predefinito. Il gruppo predefinito ha un pool di thread associato che crea nuovi thread in base alle esigenze. Il gruppo predefinito può essere configurato tramite le proprietà di sistema definite nella tabella seguente. Se per java.util.concurrent.ThreadFactory ThreadFactory il gruppo predefinito non è configurato, i thread in pool del gruppo predefinito sono Thread#isDaemon daemon thread.

<table class="striped"><caption style="display:none:">System properties</caption><thead><tr<>th scope="col">System property</th th><scope="col">Description</th></tr></thead<>tbody><tr><th scope="row"<java.nio.channels.DefaultThreadPool.threadFactory>/th<>td> Il valore di questa proprietà viene preso come nome completo di una classe concreta.java.util.concurrent.ThreadFactory ThreadFactory La classe viene caricata usando il caricatore della classe di sistema e ne viene creata un'istanza. Il metodo della java.util.concurrent.ThreadFactory#newThread newThread factory viene richiamato per creare ogni thread per il pool di thread del gruppo predefinito. Se il processo per caricare e creare un'istanza del valore della proprietà ha esito negativo, viene generato un errore non specificato durante la costruzione del gruppo predefinito. </td></tr tr>><<th scope="row"java.nio.channels.DefaultThreadPool.initialSize<>/th><td> Il valore del initialSize parametro per il gruppo predefinito (vedere ).#withCachedThreadPool withCachedThreadPool Il valore della proprietà viene acquisito come String rappresentazione di un Integer oggetto che rappresenta il parametro di dimensione iniziale. Se il valore non può essere analizzato come oggetto Integer , viene generato un errore non specificato durante la costruzione del gruppo predefinito. </td></tr></tbody></table>

"threading"><h2>Threading</h2>

Il gestore di completamento per un'operazione di I/O avviata su un canale associato a un gruppo è garantito che venga richiamato da uno dei thread in pool nel gruppo. In questo modo si garantisce che il gestore di completamento venga eseguito da un thread con l'identità< em>/em> prevista<.

Quando un'operazione di I/O viene completata immediatamente e il thread di avvio è uno dei thread in pool nel gruppo, il gestore di completamento può essere richiamato direttamente dal thread di avvio. Per evitare l'overflow dello stack, un'implementazione può imporre un limite al numero di attivazioni nello stack di thread. Alcune operazioni di I/O possono impedire di richiamare il gestore di completamento direttamente dal thread di avvio (vedere AsynchronousServerSocketChannel#accept(Object,CompletionHandler) accept).

"shutdown"><h2>Shutdown and Termination</h2>

Il #shutdown() shutdown metodo viene usato per avviare un <arresto</em>> ordinato di un gruppo. Un arresto ordinato contrassegna il gruppo come arresto; altri tentativi di costruire un canale che si associa al gruppo genererà ShutdownChannelGroupException. Indica se un gruppo è in fase di arresto può essere testato usando il #isShutdown() isShutdown metodo . Dopo l'arresto, il gruppo <em>termina</em> quando tutti i canali asincroni associati al gruppo vengono chiusi, tutti i gestori di completamento in esecuzione attivamente vengono eseguiti fino al completamento e le risorse usate dal gruppo vengono rilasciate. Non viene effettuato alcun tentativo di arrestare o interrompere thread che eseguono gestori di completamento. Il #isTerminated() isTerminated metodo viene utilizzato per verificare se il gruppo è terminato e il #awaitTermination awaitTermination metodo può essere usato per bloccare fino a quando il gruppo non viene terminato.

Il #shutdownNow() shutdownNow metodo può essere usato per avviare un <arresto</em>> forzato del gruppo. Oltre alle azioni eseguite da un arresto ordinato, il shutdownNow metodo chiude tutti i canali aperti nel gruppo come se richiamasse il AsynchronousChannel#close close metodo .

Aggiunta nella versione 1.7.

Documentazione java per java.nio.channels.AsynchronousChannelGroup.

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

AsynchronousChannelGroup(AsynchronousChannelProvider)

Inizializzare una nuova istanza di questa classe.

AsynchronousChannelGroup(IntPtr, JniHandleOwnership)

Raggruppamento di canali asincroni allo scopo della condivisione delle risorse.

Proprietà

Class

Restituisce la classe di runtime di questo Objectoggetto .

(Ereditato da Object)
Handle

Handle per l'istanza di Android sottostante.

(Ereditato da Object)
IsShutdown

Raggruppamento di canali asincroni allo scopo della condivisione delle risorse.

IsTerminated

Raggruppamento di canali asincroni allo scopo della condivisione delle risorse.

JniIdentityHashCode

Raggruppamento di canali asincroni allo scopo della condivisione delle risorse.

(Ereditato da Object)
JniPeerMembers

Raggruppamento di canali asincroni allo scopo della condivisione delle risorse.

PeerReference

Raggruppamento di canali asincroni allo scopo della condivisione delle risorse.

(Ereditato da Object)
ThresholdClass

Raggruppamento di canali asincroni allo scopo della condivisione delle risorse.

ThresholdType

Raggruppamento di canali asincroni allo scopo della condivisione delle risorse.

Metodi

AwaitTermination(Int64, TimeUnit)

Attende la chiusura del gruppo.

Clone()

Crea e restituisce una copia di questo oggetto.

(Ereditato da Object)
Dispose()

Raggruppamento di canali asincroni allo scopo della condivisione delle risorse.

(Ereditato da Object)
Dispose(Boolean)

Raggruppamento di canali asincroni allo scopo della condivisione delle risorse.

(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)
Provider()

Restituisce il provider che ha creato questo gruppo di canali.

SetHandle(IntPtr, JniHandleOwnership)

Imposta la proprietà Handle.

(Ereditato da Object)
Shutdown()

Avvia un arresto ordinato del gruppo.

ShutdownNow()

Arresta il gruppo e chiude tutti i canali aperti nel gruppo.

ToArray<T>()

Raggruppamento di canali asincroni allo scopo della condivisione delle risorse.

(Ereditato da Object)
ToString()

Restituisce una rappresentazione di stringa dell'oggetto.

(Ereditato da Object)
UnregisterFromRuntime()

Raggruppamento di canali asincroni allo scopo della condivisione delle risorse.

(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, 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)
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)
WithCachedThreadPool(IExecutorService, Int32)

Crea un gruppo di canali asincrono con un determinato pool di thread che crea nuovi thread in base alle esigenze.

WithFixedThreadPool(Int32, IThreadFactory)

Crea un gruppo di canali asincrono con un pool di thread fisso.

WithThreadPool(IExecutorService)

Crea un gruppo di canali asincrono con un pool di thread specificato.

Implementazioni dell'interfaccia esplicita

IJavaPeerable.Disposed()

Raggruppamento di canali asincroni allo scopo della condivisione delle risorse.

(Ereditato da Object)
IJavaPeerable.DisposeUnlessReferenced()

Raggruppamento di canali asincroni allo scopo della condivisione delle risorse.

(Ereditato da Object)
IJavaPeerable.Finalized()

Raggruppamento di canali asincroni allo scopo della condivisione delle risorse.

(Ereditato da Object)
IJavaPeerable.JniManagedPeerState

Raggruppamento di canali asincroni allo scopo della condivisione delle risorse.

(Ereditato da Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Raggruppamento di canali asincroni allo scopo della condivisione delle risorse.

(Ereditato da Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Raggruppamento di canali asincroni allo scopo della condivisione delle risorse.

(Ereditato da Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Raggruppamento di canali asincroni allo scopo della condivisione delle risorse.

(Ereditato da Object)

Metodi di estensione

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

Raggruppamento di canali asincroni allo scopo della condivisione delle risorse.

GetJniTypeName(IJavaPeerable)

Raggruppamento di canali asincroni allo scopo della condivisione delle risorse.

Si applica a