ScheduledThreadPoolExecutor Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
que ThreadPoolExecutor
también puede programar comandos para que se ejecuten después de un retraso determinado o para ejecutarse periódicamente.
[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
- Herencia
- Atributos
- Implementaciones
Comentarios
que ThreadPoolExecutor
también puede programar comandos para que se ejecuten después de un retraso determinado o para ejecutarse periódicamente. Esta clase es preferible a java.util.Timer
cuando se necesitan varios subprocesos de trabajo, o cuando se requieren flexibilidad o funcionalidades adicionales de ThreadPoolExecutor
(que esta clase extiende).
Las tareas retrasadas se ejecutan antes de que estén habilitadas, pero sin garantías en tiempo real sobre cuándo, después de habilitarlas, comenzarán. Las tareas programadas para exactamente el mismo tiempo de ejecución están habilitadas en el orden de envío primero en salir (FIFO).
Cuando se cancela una tarea enviada antes de que se ejecute, se suprime la ejecución. De forma predeterminada, esta tarea cancelada no se quita automáticamente de la cola de trabajo hasta que transcurre su retraso. Aunque esto permite una mayor inspección y supervisión, también puede provocar la retención sin enlazar de tareas canceladas.
Las ejecuciones sucesivas de una tarea periódica programada mediante #scheduleAtFixedRate scheduleAtFixedRate
o #scheduleWithFixedDelay scheduleWithFixedDelay
no se superponen. Aunque diferentes ejecuciones se pueden realizar mediante subprocesos diferentes, los efectos de las ejecuciones <anteriores i suceden>antes</i> de las posteriores.
Aunque esta clase hereda de ThreadPoolExecutor
, algunos de los métodos de optimización heredados no son útiles para ella. En concreto, dado que actúa como un grupo de tamaño fijo mediante corePoolSize
subprocesos y una cola sin enlazar, los ajustes no maximumPoolSize
tienen ningún efecto útil. Además, casi nunca es una buena idea establecer corePoolSize
en cero o usar allowCoreThreadTimeOut
porque esto puede dejar el grupo sin subprocesos para controlar las tareas una vez que se pueden ejecutar.
Al igual que con ThreadPoolExecutor
, si no se especifica lo contrario, esta clase usa Executors#defaultThreadFactory
como generador de subprocesos predeterminado y ThreadPoolExecutor.AbortPolicy
como el controlador de ejecución rechazado predeterminado.
<b>Notas de extensión:</b> Esta clase invalida los ThreadPoolExecutor#execute(Runnable) execute
métodos y AbstractExecutorService#submit(Runnable) submit
para generar objetos internos ScheduledFuture
para controlar los retrasos y la programación por tarea. Para conservar la funcionalidad, las invalidaciones adicionales de estos métodos en subclases deben invocar versiones de superclase, lo que deshabilita eficazmente la personalización de tareas adicional. Sin embargo, esta clase proporciona un método decorateTask
de extensión protegido alternativo (una versión para Runnable
y Callable
) que se puede usar para personalizar los tipos de tareas concretos usados para ejecutar comandos especificados a través execute
de , submit
, schedule
, scheduleAtFixedRate
y scheduleWithFixedDelay
. De forma predeterminada, usa ScheduledThreadPoolExecutor
un tipo de tarea que extiende FutureTask
. Sin embargo, esto puede modificarse o reemplazarse mediante subclases del formulario:
{@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.
}}
Agregado en 1.5.
Documentación de Java para java.util.concurrent.ScheduledThreadPoolExecutor
.
Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.
Constructores
ScheduledThreadPoolExecutor(Int32) |
Crea un nuevo |
ScheduledThreadPoolExecutor(Int32, IRejectedExecutionHandler) |
Crea un nuevo |
ScheduledThreadPoolExecutor(Int32, IThreadFactory) |
Crea un nuevo |
ScheduledThreadPoolExecutor(Int32, IThreadFactory, IRejectedExecutionHandler) |
Crea un nuevo |
ScheduledThreadPoolExecutor(IntPtr, JniHandleOwnership) |
Constructor utilizado al crear representaciones administradas de objetos JNI; llamado por el tiempo de ejecución. |
Propiedades
ActiveCount |
Devuelve el número aproximado de subprocesos que ejecutan activamente tareas. (Heredado de ThreadPoolExecutor) |
Class |
Devuelve la clase en tiempo de ejecución de este |
CompletedTaskCount |
Devuelve el número total aproximado de tareas que han completado la ejecución. (Heredado de ThreadPoolExecutor) |
ContinueExistingPeriodicTasksAfterShutdownPolicy |
Obtiene la directiva sobre si desea continuar ejecutando las tareas periódicas existentes incluso cuando este ejecutor ha sido |
CorePoolSize |
Devuelve el número principal de subprocesos. -o bien- Establece el número principal de subprocesos. (Heredado de ThreadPoolExecutor) |
ExecuteExistingDelayedTasksAfterShutdownPolicy |
Obtiene la directiva sobre si se deben ejecutar tareas retrasadas existentes incluso cuando este ejecutor ha sido |
Handle |
Identificador de la instancia de Android subyacente. (Heredado de Object) |
IsShutdown |
que |
IsTerminated |
que |
IsTerminating |
Devuelve true si este ejecutor está en proceso de terminación después |
JniIdentityHashCode |
que |
JniPeerMembers |
que |
LargestPoolSize |
Devuelve el mayor número de subprocesos que se han estado simultáneamente en el grupo. (Heredado de ThreadPoolExecutor) |
MaximumPoolSize |
Devuelve el número máximo permitido de subprocesos. -o bien- Establece el número máximo permitido de subprocesos. (Heredado de ThreadPoolExecutor) |
PeerReference |
que |
PoolSize |
Devuelve el número actual de subprocesos del grupo. (Heredado de ThreadPoolExecutor) |
Queue |
Devuelve la cola de tareas usada por este ejecutor. (Heredado de ThreadPoolExecutor) |
RejectedExecutionHandler |
Devuelve el controlador actual para tareas no ejecutables. -o bien- Establece un nuevo controlador para tareas no ejecutables. (Heredado de ThreadPoolExecutor) |
RemoveOnCancelPolicy |
Obtiene la directiva sobre si las tareas canceladas deben quitarse inmediatamente de la cola de trabajo en el momento de la cancelación. -o bien- Establece la directiva sobre si las tareas canceladas deben quitarse inmediatamente de la cola de trabajo en el momento de la cancelación. |
TaskCount |
Devuelve el número total aproximado de tareas que se han programado para su ejecución. (Heredado de ThreadPoolExecutor) |
ThreadFactory |
Devuelve el generador de subprocesos usado para crear nuevos subprocesos. -o bien- Establece el generador de subprocesos usado para crear nuevos subprocesos. (Heredado de ThreadPoolExecutor) |
ThresholdClass |
Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código. |
ThresholdType |
Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código. |
Métodos
AfterExecute(IRunnable, Throwable) |
Método invocado tras la finalización de la ejecución del runnable especificado. (Heredado de ThreadPoolExecutor) |
AllowCoreThreadTimeOut(Boolean) |
Establece la directiva que rige si los subprocesos principales pueden agotar el tiempo de espera y finalizar si no llegan tareas dentro del tiempo de mantenimiento, y se reemplazan si es necesario cuando llegan nuevas tareas. (Heredado de ThreadPoolExecutor) |
AllowsCoreThreadTimeOut() |
Devuelve true si este grupo permite que los subprocesos principales agoten el tiempo de espera y finalicen si no llegan tareas dentro del tiempo keepAlive y se reemplazan si es necesario cuando llegan nuevas tareas. (Heredado de ThreadPoolExecutor) |
AwaitTermination(Int64, TimeUnit) |
que |
AwaitTerminationAsync(Int64, TimeUnit) |
que |
BeforeExecute(Thread, IRunnable) |
Método invocado antes de ejecutar el runnable especificado en el subproceso especificado. (Heredado de ThreadPoolExecutor) |
Clone() |
Crea y devuelve una copia de este objeto. (Heredado de Object) |
DecorateTask(ICallable, IRunnableScheduledFuture) |
Modifica o reemplaza la tarea utilizada para ejecutar un invocable. |
DecorateTask(IRunnable, IRunnableScheduledFuture) |
Modifica o reemplaza la tarea utilizada para ejecutar una ejecución. |
Dispose() |
que |
Dispose(Boolean) |
que |
Equals(Object) |
Indica si algún otro objeto es "igual a" este. (Heredado de Object) |
Execute(IRunnable) |
Ejecuta la tarea especificada en algún momento en el futuro. (Heredado de ThreadPoolExecutor) |
GetHashCode() |
Devuelve un valor de código hash del objeto. (Heredado de Object) |
GetKeepAliveTime(TimeUnit) |
Devuelve el tiempo de mantenimiento del subproceso, que es la cantidad de tiempo que los subprocesos pueden permanecer inactivos antes de finalizarse. (Heredado de ThreadPoolExecutor) |
InvokeAll(ICollection) |
que |
InvokeAll(ICollection, Int64, TimeUnit) |
que |
InvokeAny(ICollection) |
que |
InvokeAny(ICollection, Int64, TimeUnit) |
que |
JavaFinalize() |
Lo llama el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto . (Heredado de Object) |
NewTaskFor(ICallable) |
Devuelve un |
NewTaskFor(IRunnable, Object) |
Devuelve un |
Notify() |
Activa un único subproceso que está esperando en el monitor de este objeto. (Heredado de Object) |
NotifyAll() |
Activa todos los subprocesos que están esperando en el monitor de este objeto. (Heredado de Object) |
PrestartAllCoreThreads() |
Inicia todos los subprocesos principales, lo que hace que esperen de forma idíca el trabajo. (Heredado de ThreadPoolExecutor) |
PrestartCoreThread() |
Inicia un subproceso principal, lo que hace que espere de forma idíca el trabajo. (Heredado de ThreadPoolExecutor) |
Purge() |
Intenta quitar de la cola de trabajo todas las |
Remove(IRunnable) |
Quita esta tarea de la cola interna del ejecutor si está presente, lo que hace que no se ejecute si aún no se ha iniciado. (Heredado de ThreadPoolExecutor) |
Schedule(ICallable, Int64, TimeUnit) |
que |
Schedule(IRunnable, Int64, TimeUnit) |
Crea y ejecuta una acción de un solo disparo que se habilita después del retraso especificado. |
ScheduleAtFixedRate(IRunnable, Int64, Int64, TimeUnit) |
Envía una acción periódica que se habilita primero después del retraso inicial especificado y, posteriormente, con el período especificado; es decir, las ejecuciones comenzarán después |
ScheduleWithFixedDelay(IRunnable, Int64, Int64, TimeUnit) |
Envía una acción periódica que se habilita primero después del retraso inicial dado y, posteriormente, con el retraso dado entre la terminación de una ejecución y el inicio del siguiente. |
SetHandle(IntPtr, JniHandleOwnership) |
Establece la propiedad Handle. (Heredado de Object) |
SetKeepAliveTime(Int64, TimeUnit) |
Establece el tiempo de mantenimiento del subproceso, que es la cantidad de tiempo que los subprocesos pueden permanecer inactivos antes de finalizarse. (Heredado de ThreadPoolExecutor) |
Shutdown() |
Inicia un apagado ordenado en el que se ejecutan las tareas enviadas anteriormente, pero no se aceptarán nuevas tareas. (Heredado de ThreadPoolExecutor) |
ShutdownNow() |
Intenta detener todas las tareas que se ejecutan activamente, detiene el procesamiento de tareas en espera y devuelve una lista de las tareas que estaban esperando la ejecución. (Heredado de ThreadPoolExecutor) |
Submit(ICallable) |
que |
Submit(IRunnable) |
Envía una tarea runnable para su ejecución y devuelve un valor Future que representa esa tarea. (Heredado de AbstractExecutorService) |
Submit(IRunnable, Object) |
que |
Terminated() |
Método invocado cuando el Ejecutor ha finalizado. (Heredado de ThreadPoolExecutor) |
ToArray<T>() |
que |
ToString() |
Devuelve una representación de cadena del objeto. (Heredado de Object) |
UnregisterFromRuntime() |
que |
Wait() |
Hace que el subproceso actual espere hasta que se despierta, normalmente por ser em notificado/em> o <em>interrumpido</em>.<>< (Heredado de Object) |
Wait(Int64) |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real. (Heredado de Object) |
Wait(Int64, Int32) |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real. (Heredado de Object) |
Implementaciones de interfaz explícitas
IJavaPeerable.Disposed() |
que |
IJavaPeerable.DisposeUnlessReferenced() |
que |
IJavaPeerable.Finalized() |
que |
IJavaPeerable.JniManagedPeerState |
que |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
que |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
que |
IJavaPeerable.SetPeerReference(JniObjectReference) |
que |
Métodos de extensión
JavaCast<TResult>(IJavaObject) |
Realiza una conversión de tipos comprobados en tiempo de ejecución de Android. |
JavaCast<TResult>(IJavaObject) |
que |
GetJniTypeName(IJavaPeerable) |
que |
AwaitTerminationAsync(IExecutorService, Int64, TimeUnit) |
que |
InvokeAnyAsync(IExecutorService, ICollection) |
que |
InvokeAnyAsync(IExecutorService, ICollection, Int64, TimeUnit) |
que |