ScheduledThreadPoolExecutor 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 ThreadPoolExecutor
que também pode agendar comandos para serem executados após um determinado atraso ou para serem executados periodicamente.
[Android.Runtime.Register("java/util/concurrent/ScheduledThreadPoolExecutor", DoNotGenerateAcw=true)]
public class ScheduledThreadPoolExecutor : Java.Util.Concurrent.ThreadPoolExecutor, IDisposable, Java.Interop.IJavaPeerable, Java.Util.Concurrent.IScheduledExecutorService
[<Android.Runtime.Register("java/util/concurrent/ScheduledThreadPoolExecutor", DoNotGenerateAcw=true)>]
type ScheduledThreadPoolExecutor = class
inherit ThreadPoolExecutor
interface IScheduledExecutorService
interface IExecutorService
interface IExecutor
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- Herança
- Atributos
- Implementações
Comentários
Um ThreadPoolExecutor
que também pode agendar comandos para serem executados após um determinado atraso ou para serem executados periodicamente. Essa classe é preferível a java.util.Timer
quando vários threads de trabalho são necessários ou quando a flexibilidade ou os recursos adicionais de ThreadPoolExecutor
(que essa classe estende) são necessários.
As tarefas atrasadas são executadas assim que são habilitadas, mas sem garantias em tempo real sobre quando, depois de habilitadas, serão iniciadas. As tarefas agendadas exatamente para o mesmo tempo de execução são habilitadas na ordem de envio FIFO (first-in-first-out).
Quando uma tarefa enviada é cancelada antes de ser executada, a execução é suprimida. Por padrão, essa tarefa cancelada não é removida automaticamente da fila de trabalho até que seu atraso decorra. Embora isso permita mais inspeção e monitoramento, também pode causar retenção ilimitada de tarefas canceladas.
Execuções sucessivas de uma tarefa periódica agendada via #scheduleAtFixedRate scheduleAtFixedRate
ou #scheduleWithFixedDelay scheduleWithFixedDelay
não se sobrepõem. Embora execuções diferentes possam ser executadas por threads <diferentes, os efeitos de execuções anteriores i>acontecem antes</i> dos subsequentes.
Embora essa classe herde do ThreadPoolExecutor
, alguns dos métodos de ajuste herdados não são úteis para ela. Em particular, como ele atua como um pool de tamanho fixo usando corePoolSize
threads e uma fila ilimitada, os ajustes não maximumPoolSize
têm efeito útil. Além disso, quase nunca é uma boa ideia definir corePoolSize
como zero ou usar allowCoreThreadTimeOut
porque isso pode deixar o pool sem threads para lidar com tarefas quando elas se tornarem qualificadas para execução.
Assim como com ThreadPoolExecutor
, se não especificado de outra forma, essa classe usa Executors#defaultThreadFactory
como a fábrica de thread padrão e ThreadPoolExecutor.AbortPolicy
como o manipulador de execução rejeitado padrão.
<b>Notas de extensão:</b> Esta classe substitui os ThreadPoolExecutor#execute(Runnable) execute
métodos e AbstractExecutorService#submit(Runnable) submit
para gerar objetos internos ScheduledFuture
para controlar atrasos e agendamento por tarefa. Para preservar a funcionalidade, quaisquer substituições adicionais desses métodos em subclasses devem invocar versões de superclasse, o que efetivamente desabilita a personalização de tarefas adicionais. No entanto, essa classe fornece método decorateTask
de extensão protegido alternativo (uma versão para Runnable
e Callable
) que pode ser usado para personalizar os tipos de tarefa concretos usados para executar comandos inseridos via execute
, submit
, schedule
, scheduleAtFixedRate
e scheduleWithFixedDelay
. Por padrão, a ScheduledThreadPoolExecutor
usa um tipo de tarefa que estende FutureTask
. No entanto, isso pode ser modificado ou substituído usando subclasses do formulário:
{@code
public class CustomScheduledExecutor extends ScheduledThreadPoolExecutor {
static class CustomTask<V> implements RunnableScheduledFuture<V> { ... }
protected <V> RunnableScheduledFuture<V> decorateTask(
Runnable r, RunnableScheduledFuture<V> task) {
return new CustomTask<V>(r, task);
}
protected <V> RunnableScheduledFuture<V> decorateTask(
Callable<V> c, RunnableScheduledFuture<V> task) {
return new CustomTask<V>(c, task);
}
// ... add constructors, etc.
}}
Adicionado em 1.5.
Documentação Java para java.util.concurrent.ScheduledThreadPoolExecutor
.
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
ScheduledThreadPoolExecutor(Int32) |
Cria um novo |
ScheduledThreadPoolExecutor(Int32, IRejectedExecutionHandler) |
Cria um novo |
ScheduledThreadPoolExecutor(Int32, IThreadFactory) |
Cria um novo |
ScheduledThreadPoolExecutor(Int32, IThreadFactory, IRejectedExecutionHandler) |
Cria um novo |
ScheduledThreadPoolExecutor(IntPtr, JniHandleOwnership) |
Um construtor usado ao criar representações gerenciadas de objetos JNI; chamado pelo tempo de execução. |
Propriedades
ActiveCount |
Retorna o número aproximado de threads que estão executando tarefas ativamente. (Herdado de ThreadPoolExecutor) |
Class |
Retorna a classe de tempo de execução deste |
CompletedTaskCount |
Retorna o número total aproximado de tarefas que concluíram a execução. (Herdado de ThreadPoolExecutor) |
ContinueExistingPeriodicTasksAfterShutdownPolicy |
Obtém a política sobre se deve continuar executando tarefas periódicas existentes mesmo quando esse executor tiver sido |
CorePoolSize |
Retorna o número principal de threads. -ou- Define o número principal de threads. (Herdado de ThreadPoolExecutor) |
ExecuteExistingDelayedTasksAfterShutdownPolicy |
Obtém a política sobre a execução de tarefas atrasadas existentes mesmo quando esse executor tiver sido |
Handle |
O identificador para a instância subjacente do Android. (Herdado de Object) |
IsShutdown |
Um |
IsTerminated |
Um |
IsTerminating |
Retorna true se esse executor estiver no processo de encerramento após |
JniIdentityHashCode |
Um |
JniPeerMembers |
Um |
LargestPoolSize |
Retorna o maior número de threads que já estiveram simultaneamente no pool. (Herdado de ThreadPoolExecutor) |
MaximumPoolSize |
Retorna o número máximo permitido de threads. -ou- Define o número máximo permitido de threads. (Herdado de ThreadPoolExecutor) |
PeerReference |
Um |
PoolSize |
Retorna o número atual de threads no pool. (Herdado de ThreadPoolExecutor) |
Queue |
Retorna a fila de tarefas usada por esse executor. (Herdado de ThreadPoolExecutor) |
RejectedExecutionHandler |
Retorna o manipulador atual para tarefas não executáveis. -ou- Define um novo manipulador para tarefas não executáveis. (Herdado de ThreadPoolExecutor) |
RemoveOnCancelPolicy |
Obtém a política sobre se as tarefas canceladas devem ser removidas imediatamente da fila de trabalho no momento do cancelamento. -ou- Define a política sobre se as tarefas canceladas devem ser imediatamente removidas da fila de trabalho no momento do cancelamento. |
TaskCount |
Retorna o número total aproximado de tarefas que já foram agendadas para execução. (Herdado de ThreadPoolExecutor) |
ThreadFactory |
Retorna a fábrica de threads usada para criar novos threads. -ou- Define a fábrica de threads usada para criar novos threads. (Herdado de ThreadPoolExecutor) |
ThresholdClass |
Esta API suporta a infraestrutura Mono para Android e não se destina a ser usada diretamente do seu código. |
ThresholdType |
Esta API suporta a infraestrutura Mono para Android e não se destina a ser usada diretamente do seu código. |
Métodos
AfterExecute(IRunnable, Throwable) |
Método invocado após a conclusão da execução do Runnable fornecido. (Herdado de ThreadPoolExecutor) |
AllowCoreThreadTimeOut(Boolean) |
Define a política que rege se os threads principais podem atingir o tempo limite e terminar se nenhuma tarefa chegar dentro do tempo de manutenção, sendo substituídos se necessário quando novas tarefas chegarem. (Herdado de ThreadPoolExecutor) |
AllowsCoreThreadTimeOut() |
Retorna true se esse pool permitir que os threads principais atinjam o tempo limite e terminem se nenhuma tarefa chegar dentro do tempo keepAlive, sendo substituídos se necessário quando novas tarefas chegarem. (Herdado de ThreadPoolExecutor) |
AwaitTermination(Int64, TimeUnit) |
Um |
AwaitTerminationAsync(Int64, TimeUnit) |
Um |
BeforeExecute(Thread, IRunnable) |
Método invocado antes de executar o Runnable fornecido no thread fornecido. (Herdado de ThreadPoolExecutor) |
Clone() |
Cria e retorna uma cópia desse objeto. (Herdado de Object) |
DecorateTask(ICallable, IRunnableScheduledFuture) |
Modifica ou substitui a tarefa usada para executar um chamável. |
DecorateTask(IRunnable, IRunnableScheduledFuture) |
Modifica ou substitui a tarefa usada para executar um executável. |
Dispose() |
Um |
Dispose(Boolean) |
Um |
Equals(Object) |
Indica se algum outro objeto é "igual" a este. (Herdado de Object) |
Execute(IRunnable) |
Executa a tarefa dada em algum momento no futuro. (Herdado de ThreadPoolExecutor) |
GetHashCode() |
Retorna um valor de código hash para o objeto. (Herdado de Object) |
GetKeepAliveTime(TimeUnit) |
Retorna o tempo de manutenção do thread, que é a quantidade de tempo que os threads podem permanecer ociosos antes de serem encerrados. (Herdado de ThreadPoolExecutor) |
InvokeAll(ICollection) |
Um |
InvokeAll(ICollection, Int64, TimeUnit) |
Um |
InvokeAny(ICollection) |
Um |
InvokeAny(ICollection, Int64, TimeUnit) |
Um |
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) |
NewTaskFor(ICallable) |
Retorna um |
NewTaskFor(IRunnable, Object) |
Retorna a |
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) |
PrestartAllCoreThreads() |
Inicia todos os threads principais, fazendo com que eles esperem ociosamente pelo trabalho. (Herdado de ThreadPoolExecutor) |
PrestartCoreThread() |
Inicia um thread principal, fazendo com que ele aguarde ociosamente pelo trabalho. (Herdado de ThreadPoolExecutor) |
Purge() |
Tenta remover da fila de trabalho todas as |
Remove(IRunnable) |
Remove essa tarefa da fila interna do executor se ela estiver presente, fazendo com que ela não seja executada se ainda não tiver sido iniciada. (Herdado de ThreadPoolExecutor) |
Schedule(ICallable, Int64, TimeUnit) |
Um |
Schedule(IRunnable, Int64, TimeUnit) |
Cria e executa uma ação one-shot que se torna habilitada após o atraso determinado. |
ScheduleAtFixedRate(IRunnable, Int64, Int64, TimeUnit) |
Apresenta uma ação periódica que se torna habilitada primeiro após o atraso inicial dado e, posteriormente, com o período determinado; ou seja, as execuções começarão depois |
ScheduleWithFixedDelay(IRunnable, Int64, Int64, TimeUnit) |
Apresenta uma ação periódica que se torna habilitada primeiro após o atraso inicial dado e, posteriormente, com o atraso dado entre o término de uma execução e o início da próxima. |
SetHandle(IntPtr, JniHandleOwnership) |
Define a propriedade Handle. (Herdado de Object) |
SetKeepAliveTime(Int64, TimeUnit) |
Define o tempo de manutenção do thread, que é a quantidade de tempo que os threads podem permanecer ociosos antes de serem encerrados. (Herdado de ThreadPoolExecutor) |
Shutdown() |
Inicia um desligamento ordenado no qual as tarefas enviadas anteriormente são executadas, mas nenhuma nova tarefa será aceita. (Herdado de ThreadPoolExecutor) |
ShutdownNow() |
Tenta interromper todas as tarefas em execução ativa, interrompe o processamento de tarefas em espera e retorna uma lista das tarefas que estavam aguardando execução. (Herdado de ThreadPoolExecutor) |
Submit(ICallable) |
Um |
Submit(IRunnable) |
Envia uma tarefa Runnable para execução e retorna um Future representando essa tarefa. (Herdado de AbstractExecutorService) |
Submit(IRunnable, Object) |
Um |
Terminated() |
Método invocado quando o Executor é encerrado. (Herdado de ThreadPoolExecutor) |
ToArray<T>() |
Um |
ToString() |
Retorna uma representação de cadeia de caracteres do objeto. (Herdado de Object) |
UnregisterFromRuntime() |
Um |
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) |
Implantações explícitas de interface
IJavaPeerable.Disposed() |
Um |
IJavaPeerable.DisposeUnlessReferenced() |
Um |
IJavaPeerable.Finalized() |
Um |
IJavaPeerable.JniManagedPeerState |
Um |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Um |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Um |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Um |
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 |
GetJniTypeName(IJavaPeerable) |
Um |
AwaitTerminationAsync(IExecutorService, Int64, TimeUnit) |
Um |
InvokeAnyAsync(IExecutorService, ICollection) |
Um |
InvokeAnyAsync(IExecutorService, ICollection, Int64, TimeUnit) |
Um |