AsynchronousChannelGroup Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Um agrupamento de canais assíncronos para fins de compartilhamento de recursos.
[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
- Herança
- Atributos
Comentários
Um agrupamento de canais assíncronos para fins de compartilhamento de recursos.
Um grupo de canais assíncronos encapsula a mecânica necessária para lidar com a conclusão de operações de E/S iniciadas por AsynchronousChannel asynchronous channels
que estão vinculadas ao grupo. Um grupo tem um pool de threads associado ao qual as tarefas são enviadas para manipular eventos de E/S e despachar para CompletionHandler completion-handlers
que consumam o resultado de operações assíncronas executadas em canais no grupo. Além de manipular eventos de E/S, os threads em pool também podem executar outras tarefas necessárias para oferecer suporte à execução de operações de E/S assíncronas.
Um grupo de canais assíncronos é criado invocando os #withFixedThreadPool withFixedThreadPool
métodos ou #withCachedThreadPool withCachedThreadPool
definidos aqui. Os canais são vinculados a um grupo especificando o grupo ao construir o canal. O pool de threads associado é <de propriedade<> do grupo,> o término do grupo resulta no desligamento do pool de threads associado.
Além dos grupos criados explicitamente, a máquina virtual Java mantém um grupo</em> padrão em>todo <o sistema que é construído automaticamente. Os canais assíncronos que não especificam um grupo em tempo de construção são vinculados ao grupo padrão. O grupo padrão tem um pool de threads associado que cria novos threads conforme necessário. O grupo padrão pode ser configurado por meio das propriedades do sistema definidas na tabela abaixo. Onde o java.util.concurrent.ThreadFactory ThreadFactory
para o grupo padrão não está configurado, os threads em pool do grupo padrão são Thread#isDaemon daemon
threads.
<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> O valor dessa propriedade é considerado o nome totalmente qualificado de uma classe concretajava.util.concurrent.ThreadFactory ThreadFactory
.< A classe é carregada usando o carregador de classes do sistema e instanciada. O método da java.util.concurrent.ThreadFactory#newThread newThread
fábrica é chamado para criar cada thread para o pool de threads do grupo padrão. Se o processo para carregar e instanciar o valor da propriedade falhar, um erro não especificado será lançado durante a construção do grupo padrão. </td></tr><tr><th scope="row"java.nio.channels.DefaultThreadPool.initialSize
<>/th><td> O valor do initialSize
parâmetro para o grupo padrão (consulte ).#withCachedThreadPool withCachedThreadPool
O valor da propriedade é considerado a String
representação de um Integer
que é o parâmetro de tamanho inicial. Se o valor não puder ser analisado como um Integer
, ele fará com que um erro não especificado seja lançado durante a construção do grupo padrão. </td></tr></tbody></tabela>
"threading"><h2>Rosqueamento</h2>
O manipulador de conclusão para uma operação de E/S iniciada em um canal vinculado a um grupo tem garantia de ser chamado por um dos threads em pool no grupo. Isso garante que o manipulador de conclusão seja executado por um thread com a identidade/em> em esperada.<><
Quando uma operação de E/S for concluída imediatamente e o thread inicial for um dos threads agrupados no grupo, o manipulador de conclusão poderá ser chamado diretamente pelo thread inicial. Para evitar estouro de pilha, uma implementação pode impor um limite quanto ao número de ativações na pilha de threads. Algumas operações de E/S podem proibir a invocação do manipulador de conclusão diretamente pelo thread inicial (consulte AsynchronousServerSocketChannel#accept(Object,CompletionHandler) accept
).
"desligamento"><h2>Desligamento e rescisão</h2>
O #shutdown() shutdown
método é usado para iniciar um <desligamento</em> ordenado de>um grupo. Um desligamento ordenado marca o grupo como desligamento; Outras tentativas de construir um canal que se liga ao grupo lançarão ShutdownChannelGroupException
. Se um grupo é desligado ou não pode ser testado usando o #isShutdown() isShutdown
método. Após o desligamento, o grupo <em>termina</em> quando todos os canais assíncronos vinculados ao grupo são fechados, todos os manipuladores de conclusão em execução ativa são executados até a conclusão e os recursos usados pelo grupo são liberados. Nenhuma tentativa é feita para parar ou interromper threads que estão executando manipuladores de conclusão. O #isTerminated() isTerminated
método é usado para testar se o grupo foi encerrado e o #awaitTermination awaitTermination
método pode ser usado para bloquear até que o grupo tenha terminado.
O #shutdownNow() shutdownNow
método pode ser usado para iniciar um <desligamento< forçado>/em> do grupo. Além das ações executadas por um desligamento ordenado, o shutdownNow
método fecha todos os canais abertos no grupo como se invocasse o AsynchronousChannel#close close
método.
Adicionado em 1.7.
Documentação Java para java.nio.channels.AsynchronousChannelGroup
.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.
Construtores
AsynchronousChannelGroup(AsynchronousChannelProvider) |
Inicialize uma nova instância dessa classe. |
AsynchronousChannelGroup(IntPtr, JniHandleOwnership) |
Um agrupamento de canais assíncronos para fins de compartilhamento de recursos. |
Propriedades
Class |
Retorna a classe de tempo de execução deste |
Handle |
O identificador para a instância subjacente do Android. (Herdado de Object) |
IsShutdown |
Um agrupamento de canais assíncronos para fins de compartilhamento de recursos. |
IsTerminated |
Um agrupamento de canais assíncronos para fins de compartilhamento de recursos. |
JniIdentityHashCode |
Um agrupamento de canais assíncronos para fins de compartilhamento de recursos. (Herdado de Object) |
JniPeerMembers |
Um agrupamento de canais assíncronos para fins de compartilhamento de recursos. |
PeerReference |
Um agrupamento de canais assíncronos para fins de compartilhamento de recursos. (Herdado de Object) |
ThresholdClass |
Um agrupamento de canais assíncronos para fins de compartilhamento de recursos. |
ThresholdType |
Um agrupamento de canais assíncronos para fins de compartilhamento de recursos. |
Métodos
AwaitTermination(Int64, TimeUnit) |
Aguarda encerramento do grupo. |
Clone() |
Cria e retorna uma cópia desse objeto. (Herdado de Object) |
Dispose() |
Um agrupamento de canais assíncronos para fins de compartilhamento de recursos. (Herdado de Object) |
Dispose(Boolean) |
Um agrupamento de canais assíncronos para fins de compartilhamento de recursos. (Herdado de Object) |
Equals(Object) |
Indica se algum outro objeto é "igual" a este. (Herdado de Object) |
GetHashCode() |
Retorna um valor de código hash para o objeto. (Herdado de Object) |
JavaFinalize() |
Chamado pelo coletor de lixo em um objeto quando a coleta de lixo determina que não há mais referências ao objeto. (Herdado de Object) |
Notify() |
Ativa um único thread que está aguardando no monitor deste objeto. (Herdado de Object) |
NotifyAll() |
Ativa todos os threads que estão aguardando no monitor deste objeto. (Herdado de Object) |
Provider() |
Retorna o provedor que criou esse grupo de canais. |
SetHandle(IntPtr, JniHandleOwnership) |
Define a propriedade Handle. (Herdado de Object) |
Shutdown() |
Inicia um desligamento ordenado do grupo. |
ShutdownNow() |
Desliga o grupo e fecha todos os canais abertos no grupo. |
ToArray<T>() |
Um agrupamento de canais assíncronos para fins de compartilhamento de recursos. (Herdado de Object) |
ToString() |
Retorna uma representação de cadeia de caracteres do objeto. (Herdado de Object) |
UnregisterFromRuntime() |
Um agrupamento de canais assíncronos para fins de compartilhamento de recursos. (Herdado de Object) |
Wait() |
Faz com que o thread atual aguarde até que ele seja ativado, normalmente sendo <em notificado</em> ou <em>interrompido</em>>. (Herdado de Object) |
Wait(Int64) |
Faz com que o thread atual aguarde até que ele seja despertado, normalmente sendo <em>notificado</em> ou <em interrompido</em>, ou até que>uma certa quantidade de tempo real tenha decorrido. (Herdado de Object) |
Wait(Int64, Int32) |
Faz com que o thread atual aguarde até que ele seja despertado, normalmente sendo <em>notificado</em> ou <em interrompido</em>, ou até que>uma certa quantidade de tempo real tenha decorrido. (Herdado de Object) |
WithCachedThreadPool(IExecutorService, Int32) |
Cria um grupo de canais assíncronos com um determinado pool de threads que cria novos threads conforme necessário. |
WithFixedThreadPool(Int32, IThreadFactory) |
Cria um grupo de canais assíncronos com um pool de threads fixo. |
WithThreadPool(IExecutorService) |
Cria um grupo de canais assíncronos com um determinado pool de threads. |
Implantações explícitas de interface
IJavaPeerable.Disposed() |
Um agrupamento de canais assíncronos para fins de compartilhamento de recursos. (Herdado de Object) |
IJavaPeerable.DisposeUnlessReferenced() |
Um agrupamento de canais assíncronos para fins de compartilhamento de recursos. (Herdado de Object) |
IJavaPeerable.Finalized() |
Um agrupamento de canais assíncronos para fins de compartilhamento de recursos. (Herdado de Object) |
IJavaPeerable.JniManagedPeerState |
Um agrupamento de canais assíncronos para fins de compartilhamento de recursos. (Herdado de Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Um agrupamento de canais assíncronos para fins de compartilhamento de recursos. (Herdado de Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Um agrupamento de canais assíncronos para fins de compartilhamento de recursos. (Herdado de Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Um agrupamento de canais assíncronos para fins de compartilhamento de recursos. (Herdado de Object) |
Métodos de Extensão
JavaCast<TResult>(IJavaObject) |
Executa uma conversão de tipo verificada em tempo de execução do Android. |
JavaCast<TResult>(IJavaObject) |
Um agrupamento de canais assíncronos para fins de compartilhamento de recursos. |
GetJniTypeName(IJavaPeerable) |
Um agrupamento de canais assíncronos para fins de compartilhamento de recursos. |