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
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 |
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. |