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 quando java.util.Timer vários threads de trabalho são necessários ou quando a flexibilidade adicional ou os recursos (dos ThreadPoolExecutor quais essa classe se estende) são necessários.
Tarefas atrasadas são executadas antes de serem habilitadas, mas sem garantias em tempo real sobre quando, depois de habilitadas, elas serão iniciadas. As tarefas agendadas para exatamente o mesmo tempo de execução são habilitadas na ordem de envio primeiro a entrar em primeiro lugar (FIFO).
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 o atraso seja decorrido. Embora isso habilite a inspeção e o monitoramento adicionais, isso também pode causar retenção não limitada de tarefas canceladas.
Execuções sucessivas de uma tarefa periódica agendada por meio #scheduleAtFixedRate scheduleAtFixedRate ou #scheduleWithFixedDelay scheduleWithFixedDelay não se sobrepõem. Embora execuções diferentes possam ser executadas por threads diferentes, os efeitos das execuções <anteriores ocorrem>antes</i> das seguintes.
Embora essa classe herda, ThreadPoolExecutoralguns 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 não associado, os ajustes não maximumPoolSize têm nenhum efeito útil. Além disso, quase nunca é uma boa ideia definir corePoolSize como zero ou usar allowCoreThreadTimeOut , pois isso pode deixar o pool sem threads para lidar com tarefas depois que elas se tornarem elegíveis para execução.
Assim como ocorre com ThreadPoolExecutor, se não for especificado de outra forma, essa classe usará como a fábrica de threads Executors#defaultThreadFactory padrão e ThreadPoolExecutor.AbortPolicy como o manipulador de execução rejeitado padrão.
<b>Notas de extensão:</b> Essa classe substitui os métodos e AbstractExecutorService#submit(Runnable) submit os ThreadPoolExecutor#execute(Runnable) execute métodos para gerar objetos internos ScheduledFuture para controlar atrasos por tarefa e agendamento. 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 um 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 por meio executede , , submit, schedulee scheduleAtFixedRatescheduleWithFixedDelay. Por padrão, um ScheduledThreadPoolExecutor tipo de tarefa é usado estendendo 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.
Java documentação para java.util.concurrent.ScheduledThreadPoolExecutor.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.
Construtores
| Nome | Description |
|---|---|
| ScheduledThreadPoolExecutor(Int32, IRejectedExecutionHandler) |
Cria um novo |
| ScheduledThreadPoolExecutor(Int32, IThreadFactory, IRejectedExecutionHandler) |
Cria um novo |
| ScheduledThreadPoolExecutor(Int32, IThreadFactory) |
Cria um novo |
| ScheduledThreadPoolExecutor(Int32) |
Cria um novo |
| ScheduledThreadPoolExecutor(IntPtr, JniHandleOwnership) |
Um construtor usado ao criar representações gerenciadas de objetos JNI; chamado pelo runtime. |
Propriedades
| Nome | Description |
|---|---|
| ActiveCount |
Retorna o número aproximado de threads que estão executando tarefas ativamente. (Herdado de ThreadPoolExecutor) |
| Class |
Retorna a classe de runtime 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 se executar tarefas atrasadas existentes mesmo quando esse executor tiver sido |
| Handle |
O identificador para a instância subjacente do Android. (Herdado de Object) |
| IsShutdown | (Herdado de ThreadPoolExecutor) |
| IsTerminated | (Herdado de ThreadPoolExecutor) |
| IsTerminating |
Retornará 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 inexecutáveis. -ou- Define um novo manipulador para tarefas não reexecutá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 |
Essa API dá suporte à infraestrutura do Mono para Android e não se destina a ser usada diretamente do seu código. |
| ThresholdType |
Essa API dá suporte à infraestrutura do Mono para Android e não se destina a ser usada diretamente do seu código. |
Métodos
| Nome | Description |
|---|---|
| AfterExecute(IRunnable, Throwable) |
Método invocado após a conclusão da execução do Runnable especificado. (Herdado de ThreadPoolExecutor) |
| AllowCoreThreadTimeOut(Boolean) |
Define a política que rege se os threads principais podem acabar e terminar se nenhuma tarefa chegar dentro do tempo de vida útil, sendo substituída se necessário quando novas tarefas chegarem. (Herdado de ThreadPoolExecutor) |
| AllowsCoreThreadTimeOut() |
Retornará true se esse pool permitir que os threads principais reduzam o tempo limite e terminem se nenhuma tarefa chegar dentro do tempo keepAlive, sendo substituída se necessário quando novas tarefas chegarem. (Herdado de ThreadPoolExecutor) |
| AwaitTermination(Int64, TimeUnit) | (Herdado de ThreadPoolExecutor) |
| AwaitTerminationAsync(Int64, TimeUnit) |
Um |
| BeforeExecute(Thread, IRunnable) |
Método invocado antes de executar o Runnable especificado no thread especificado. (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 callable. |
| 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 fornecida 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 keep-alive do thread, que é a quantidade de tempo que os threads podem permanecer ociosos antes de serem encerrados. (Herdado de ThreadPoolExecutor) |
| InvokeAll(ICollection, Int64, TimeUnit) |
Um |
| InvokeAll(ICollection) |
Um |
| InvokeAny(ICollection, Int64, TimeUnit) |
Um |
| InvokeAny(ICollection) |
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 um |
| 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 aguardem idly pelo trabalho. (Herdado de ThreadPoolExecutor) |
| PrestartCoreThread() |
Inicia um thread principal, fazendo com que ele aguarde o 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 de um tiro que se torna habilitada após o atraso determinado. |
| ScheduleAtFixedRate(IRunnable, Int64, Int64, TimeUnit) |
Envia uma ação periódica que se torna habilitada primeiro após o atraso inicial determinado e, posteriormente, com o período determinado; ou seja, as execuções começarão depois |
| ScheduleWithFixedDelay(IRunnable, Int64, Int64, TimeUnit) |
Envia uma ação periódica que se torna habilitada primeiro após o atraso inicial especificado e, posteriormente, com o atraso determinado 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 keep-alive 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 ativamente, interrompe o processamento de tarefas de espera e retorna uma lista das tarefas que estavam aguardando execução. (Herdado de ThreadPoolExecutor) |
| Submit(ICallable) |
Um |
| Submit(IRunnable, Object) |
Um |
| Submit(IRunnable) |
Envia uma tarefa Executável para execução e retorna um Futuro que representa essa tarefa. (Herdado de AbstractExecutorService) |
| 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é ser despertado, normalmente por ser <notificado/em> ou <em>interrompido</em>.<> (Herdado de Object) |
| Wait(Int64, Int32) |
Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido. (Herdado de Object) |
| Wait(Int64) |
Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido. (Herdado de Object) |
Implantações explícitas de interface
| Nome | Description |
|---|---|
| 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
| Nome | Description |
|---|---|
| AwaitTerminationAsync(IExecutorService, Int64, TimeUnit) |
Um |
| GetJniTypeName(IJavaPeerable) |
Obtém o nome JNI do tipo da instância |
| InvokeAnyAsync(IExecutorService, ICollection, Int64, TimeUnit) |
Um |
| InvokeAnyAsync(IExecutorService, ICollection) |
Um |
| JavaAs<TResult>(IJavaPeerable) |
Tente coagir a digitar |
| JavaCast<TResult>(IJavaObject) |
Executa uma conversão de tipo marcada por runtime do Android. |
| JavaCast<TResult>(IJavaObject) |
Um |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Tente coagir a digitar |