Looking for multithreading Answers? Try Ask4KnowledgeBase
Looking for multithreading Keywords? Try Ask4Keywords

multithreadingEjecutores


Sintaxis

  • ThreadPoolExecutor

  • ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue)

  • ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, RejectedExecutionHandler handler)

  • ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, ThreadFactory threadFactory)

  • ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, ThreadFactory threadFactory, RejectedExecutionHandler handler)

  • Executors.callable(PrivilegedAction<?> action)

  • Executors.callable(PrivilegedExceptionAction<?> action)

  • Executors.callable(Runnable task)

  • Executors.callable(Runnable task, T result)

  • Executors.defaultThreadFactory()

  • Executors.newCachedThreadPool()

  • Executors.newCachedThreadPool(ThreadFactory threadFactory)

  • Executors.newFixedThreadPool(int nThreads)

  • Executors.newFixedThreadPool(int nThreads, ThreadFactory threadFactory)

  • Executors.newScheduledThreadPool(int corePoolSize)

  • Executors.newScheduledThreadPool(int corePoolSize, ThreadFactory threadFactory)

  • Executors.newSingleThreadExecutor()

  • Executors.newSingleThreadExecutor(ThreadFactory threadFactory)

Parámetros

Parámetro Detalle
corePoolSize Número mínimo de hilos a mantener en la piscina.
maximumPoolSize Número máximo de hilos para permitir en la piscina.
keepAliveTime Cuando el número de subprocesos es mayor que el núcleo, los subprocesos no centrales (exceso de subprocesos inactivos) esperarán el tiempo definido por este parámetro para nuevas tareas antes de terminar.
unidad Unidad de tiempo para keepAliveTime .
se acabó el tiempo el tiempo máximo para esperar
workQueue El tipo de cola que nuestro Ejecutor va a utilizar.
threadFactory La fábrica para usar al crear nuevos hilos.
nhilos El número de hilos en la piscina.
albacea La implementación subyacente
tarea la tarea a ejecutar
resultado El resultado para volver.
acción La acción privilegiada para ejecutar.
llamable La tarea subyacente

Observaciones

Los diferentes tipos de Threadpools y Colas que se explican a continuación, se han tomado de la información y los conocimientos de [la documentación de Oracle] [1] y [Jakob Jenkov] [2] donde puede aprender mucho sobre la concurrencia en Java.

Diferentes tipos de ThreadPools

SingleThreadExecutor: Ejecutor que usa un solo subproceso de trabajo que opera en una cola sin límites, y usa el ThreadFactory proporcionado para crear un nuevo subproceso cuando sea necesario. A diferencia del newFixedThreadPool (1, threadFactory) equivalente, se garantiza que el ejecutor devuelto no se puede volver a configurar para usar subprocesos adicionales.

FixedThreadPool: grupo de subprocesos que reutiliza un número fijo de subprocesos que operan en una cola compartida sin límites, utilizando el ThreadFactory proporcionado para crear nuevos subprocesos cuando sea necesario. En cualquier momento, como máximo, las hebras nThreads serán tareas de procesamiento activas. Si se envían tareas adicionales cuando todos los subprocesos están activos, esperarán en la cola hasta que haya un subproceso disponible. Si alguna de las hebras termina debido a una falla durante la ejecución antes del cierre, una nueva tomará su lugar si es necesario para ejecutar tareas posteriores. Los subprocesos en el grupo existirán hasta que se cierre explícitamente.

CachedThreadPool: grupo de subprocesos que crea nuevos subprocesos según sea necesario, pero reutilizará los subprocesos construidos previamente cuando estén disponibles y utiliza el ThreadFactory proporcionado para crear nuevos subprocesos cuando sea necesario.

SingleThreadScheduledExecutor: ejecutor de un solo hilo que puede programar comandos para que se ejecuten después de un retraso determinado o para que se ejecuten periódicamente. (Sin embargo, tenga en cuenta que si este único hilo termina debido a una falla durante la ejecución antes del cierre, uno nuevo tomará su lugar si es necesario para ejecutar las tareas subsiguientes). Se garantiza que las tareas se ejecutarán de forma secuencial, y no más de una tarea estará activa en cualquier momento dado. A diferencia del newScheduledThreadPool (1, threadFactory) equivalente, se garantiza que el ejecutor devuelto no se puede volver a configurar para usar subprocesos adicionales.

ScheduledThreadPool: grupo de subprocesos que puede programar comandos para que se ejecuten después de un retraso determinado o que se ejecuten periódicamente. Diferentes tipos de colas de trabajo

Ejecutores Ejemplos relacionados