Compartir a través de


ScheduledThreadPoolExecutor Clase

Definición

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 executede , submit, schedule, scheduleAtFixedRatey 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 con el tamaño de grupo de núcleos especificado.

ScheduledThreadPoolExecutor(Int32, IRejectedExecutionHandler)

Crea un nuevo ScheduledThreadPoolExecutor con los parámetros iniciales especificados.

ScheduledThreadPoolExecutor(Int32, IThreadFactory)

Crea un nuevo ScheduledThreadPoolExecutor con los parámetros iniciales especificados.

ScheduledThreadPoolExecutor(Int32, IThreadFactory, IRejectedExecutionHandler)

Crea un nuevo ScheduledThreadPoolExecutor con los parámetros iniciales especificados.

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

(Heredado de Object)
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 shutdown. -o bien- Establece la directiva en si se van a seguir ejecutando tareas periódicas existentes incluso cuando este ejecutor ha sido shutdown.

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 shutdown. -o bien- Establece la directiva en si se deben ejecutar tareas retrasadas existentes incluso cuando este ejecutor ha sido shutdown.

Handle

Identificador de la instancia de Android subyacente.

(Heredado de Object)
IsShutdown

que ThreadPoolExecutor también puede programar comandos para que se ejecuten después de un retraso determinado o para ejecutarse periódicamente.

(Heredado de ThreadPoolExecutor)
IsTerminated

que ThreadPoolExecutor también puede programar comandos para que se ejecuten después de un retraso determinado o para ejecutarse periódicamente.

(Heredado de ThreadPoolExecutor)
IsTerminating

Devuelve true si este ejecutor está en proceso de terminación después #shutdown de o #shutdownNow pero no ha terminado completamente.

(Heredado de ThreadPoolExecutor)
JniIdentityHashCode

que ThreadPoolExecutor también puede programar comandos para que se ejecuten después de un retraso determinado o para ejecutarse periódicamente.

(Heredado de Object)
JniPeerMembers

que ThreadPoolExecutor también puede programar comandos para que se ejecuten después de un retraso determinado o para ejecutarse periódicamente.

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 ThreadPoolExecutor también puede programar comandos para que se ejecuten después de un retraso determinado o para ejecutarse periódicamente.

(Heredado de Object)
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 ThreadPoolExecutor también puede programar comandos para que se ejecuten después de un retraso determinado o para ejecutarse periódicamente.

(Heredado de ThreadPoolExecutor)
AwaitTerminationAsync(Int64, TimeUnit)

que ThreadPoolExecutor también puede programar comandos para que se ejecuten después de un retraso determinado o para ejecutarse periódicamente.

(Heredado de AbstractExecutorService)
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 ThreadPoolExecutor también puede programar comandos para que se ejecuten después de un retraso determinado o para ejecutarse periódicamente.

(Heredado de Object)
Dispose(Boolean)

que ThreadPoolExecutor también puede programar comandos para que se ejecuten después de un retraso determinado o para ejecutarse periódicamente.

(Heredado de Object)
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 ThreadPoolExecutor también puede programar comandos para que se ejecuten después de un retraso determinado o para ejecutarse periódicamente.

(Heredado de AbstractExecutorService)
InvokeAll(ICollection, Int64, TimeUnit)

que ThreadPoolExecutor también puede programar comandos para que se ejecuten después de un retraso determinado o para ejecutarse periódicamente.

(Heredado de AbstractExecutorService)
InvokeAny(ICollection)

que ThreadPoolExecutor también puede programar comandos para que se ejecuten después de un retraso determinado o para ejecutarse periódicamente.

(Heredado de AbstractExecutorService)
InvokeAny(ICollection, Int64, TimeUnit)

que ThreadPoolExecutor también puede programar comandos para que se ejecuten después de un retraso determinado o para ejecutarse periódicamente.

(Heredado de AbstractExecutorService)
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 RunnableFuture para la tarea invocable especificada.

(Heredado de AbstractExecutorService)
NewTaskFor(IRunnable, Object)

Devuelve un RunnableFuture para el valor runnable y predeterminado especificados.

(Heredado de AbstractExecutorService)
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 Future tareas que se han cancelado.

(Heredado de ThreadPoolExecutor)
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 ThreadPoolExecutor también puede programar comandos para que se ejecuten después de un retraso determinado o para ejecutarse periódicamente.

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 initialDelayde , luego initialDelay + period, initialDelay + 2 * period, y así sucesivamente.

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 ThreadPoolExecutor también puede programar comandos para que se ejecuten después de un retraso determinado o para ejecutarse periódicamente.

(Heredado de AbstractExecutorService)
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 ThreadPoolExecutor también puede programar comandos para que se ejecuten después de un retraso determinado o para ejecutarse periódicamente.

(Heredado de AbstractExecutorService)
Terminated()

Método invocado cuando el Ejecutor ha finalizado.

(Heredado de ThreadPoolExecutor)
ToArray<T>()

que ThreadPoolExecutor también puede programar comandos para que se ejecuten después de un retraso determinado o para ejecutarse periódicamente.

(Heredado de Object)
ToString()

Devuelve una representación de cadena del objeto.

(Heredado de Object)
UnregisterFromRuntime()

que ThreadPoolExecutor también puede programar comandos para que se ejecuten después de un retraso determinado o para ejecutarse periódicamente.

(Heredado de Object)
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 ThreadPoolExecutor también puede programar comandos para que se ejecuten después de un retraso determinado o para ejecutarse periódicamente.

(Heredado de Object)
IJavaPeerable.DisposeUnlessReferenced()

que ThreadPoolExecutor también puede programar comandos para que se ejecuten después de un retraso determinado o para ejecutarse periódicamente.

(Heredado de Object)
IJavaPeerable.Finalized()

que ThreadPoolExecutor también puede programar comandos para que se ejecuten después de un retraso determinado o para ejecutarse periódicamente.

(Heredado de Object)
IJavaPeerable.JniManagedPeerState

que ThreadPoolExecutor también puede programar comandos para que se ejecuten después de un retraso determinado o para ejecutarse periódicamente.

(Heredado de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

que ThreadPoolExecutor también puede programar comandos para que se ejecuten después de un retraso determinado o para ejecutarse periódicamente.

(Heredado de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

que ThreadPoolExecutor también puede programar comandos para que se ejecuten después de un retraso determinado o para ejecutarse periódicamente.

(Heredado de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

que ThreadPoolExecutor también puede programar comandos para que se ejecuten después de un retraso determinado o para ejecutarse periódicamente.

(Heredado de Object)

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 ThreadPoolExecutor también puede programar comandos para que se ejecuten después de un retraso determinado o para ejecutarse periódicamente.

GetJniTypeName(IJavaPeerable)

que ThreadPoolExecutor también puede programar comandos para que se ejecuten después de un retraso determinado o para ejecutarse periódicamente.

AwaitTerminationAsync(IExecutorService, Int64, TimeUnit)

que ThreadPoolExecutor también puede programar comandos para que se ejecuten después de un retraso determinado o para ejecutarse periódicamente.

InvokeAnyAsync(IExecutorService, ICollection)

que ThreadPoolExecutor también puede programar comandos para que se ejecuten después de un retraso determinado o para ejecutarse periódicamente.

InvokeAnyAsync(IExecutorService, ICollection, Int64, TimeUnit)

que ThreadPoolExecutor también puede programar comandos para que se ejecuten después de un retraso determinado o para ejecutarse periódicamente.

Se aplica a