AsynchronousChannelGroup Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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à
- 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
tale gruppo. Un gruppo ha un pool di thread associato a cui vengono inviate 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 alla gestione degli eventi di I/O, i thread in pool possono eseguire anche 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 quando si costruisce il 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< predefinito/em>> 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 il java.util.concurrent.ThreadFactory ThreadFactory
valore per il gruppo predefinito non è configurato, i thread in pool del gruppo predefinito sono Thread#isDaemon daemon
thread.
<table class="striped">didascalia style="display:none:">System properties</didascalia>< thead<>tr<>th scope="col>"System property</<>th th scope="col>"description</><th/tr<>/thead tbody><tr<>th scope="rowjava.nio.channels.DefaultThreadPool.threadFactory
<>"/th><td><>< Il valore di questa proprietà viene assunto come nome completo di una classe concretajava.util.concurrent.ThreadFactory ThreadFactory
. La classe viene caricata usando il caricatore della classe di sistema e 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 parametro per il initialSize
gruppo predefinito (vedere ).#withCachedThreadPool withCachedThreadPool
Il valore della proprietà viene acquisito come String
rappresentazione di un Integer
parametro di dimensione iniziale. Se il valore non può essere analizzato come oggetto Integer
causa 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 in un canale associato a un gruppo è garantito che venga richiamato da uno dei thread in pool nel gruppo. Ciò 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 il 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/em>> di un gruppo. Un arresto ordinato contrassegna il gruppo come arresto; altri tentativi di costruire un canale che associa al gruppo genererà ShutdownChannelGroupException
. Se un gruppo è arrestato può essere testato usando il #isShutdown() isShutdown
metodo . Dopo l'arresto, il gruppo <em>termina/em> quando vengono chiusi tutti i canali asincroni< associati al gruppo, tutti i gestori di completamento in esecuzione attiva hanno eseguito al completamento e le risorse usate dal gruppo vengono rilasciate. Non viene eseguito alcun tentativo di arrestare o interrompere i thread che eseguono gestori di completamento. Il #isTerminated() isTerminated
metodo viene usato per testare se il gruppo è terminato e il #awaitTermination awaitTermination
metodo può essere usato per bloccare fino alla chiusura del gruppo.
Il #shutdownNow() shutdownNow
metodo può essere usato per avviare un <arresto< forzato/em>> 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 in base al lavoro creato e condiviso dal Android Open Source e usato in base ai termini descritti nella .
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 |
Handle |
Handle all'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 terminazione 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 in un oggetto quando Garbage Collection determina che non sono presenti più riferimenti all'oggetto. (Ereditato da Object) |
Notify() |
Riattiva un singolo thread in attesa del monitoraggio dell'oggetto. (Ereditato da Object) |
NotifyAll() |
Riattiva tutti i thread in attesa del monitoraggio 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 in formato stringa dell'oggetto. (Ereditato da Object) |
UnregisterFromRuntime() |
Raggruppamento di canali asincroni allo scopo della condivisione delle risorse. (Ereditato da Object) |
Wait() |
Causa l'attesa del thread corrente fino a quando non viene svegliata, in genere eseguendo>una notifica</em o <em interrotto</>em>>.< (Ereditato da Object) |
Wait(Int64) |
Causa l'attesa del thread corrente fino a quando non viene svegliata, in genere <>eseguendo 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) |
Causa l'attesa del thread corrente fino a quando non viene svegliata, in genere <>eseguendo 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 determinato pool di thread. |
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 dei tipi controllati 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. |