¿Qué es la clase Ejecutores?
Los ejecutores proporcionan algunos métodos de herramientas para las clases Executor, ExecutorService, ScheduledExecutorService, ThreadFactory y Callable.
Los ejecutores se pueden utilizar para crear fácilmente grupos de subprocesos.
El grupo de subprocesos es una forma de procesamiento de subprocesos múltiples que agrega tareas a una cola durante el procesamiento y luego inicia automáticamente estas tareas después de que se crea el subproceso. Los subprocesos del grupo de subprocesos son subprocesos en segundo plano. Cada subproceso utiliza el tamaño de pila predeterminado, se ejecuta con la prioridad predeterminada y se encuentra en un apartamento de subprocesos múltiples. Si un subproceso está inactivo en el código administrado (por ejemplo, esperando un evento), el grupo de subprocesos insertará otro subproceso de trabajo para mantener ocupados a todos los procesadores. Si todos los subprocesos del grupo de subprocesos permanecen ocupados en todo momento, pero la cola contiene trabajo pendiente, el grupo de subprocesos creará otro subproceso de trabajo después de un tiempo, pero la cantidad de subprocesos nunca excederá el máximo. Los subprocesos que superen el máximo se pueden poner en cola, pero no se inician hasta que otros subprocesos hayan finalizado.
Algunos métodos proporcionados en esta clase son:
1. public static ExecutorService newCachedThreadPool() crea un grupo de subprocesos que puede crear nuevos subprocesos según sea necesario, pero los subprocesos previamente construidos están disponibles. ser reutilizado. Para los programas que realizan muchas tareas asincrónicas de corta duración, estos grupos de subprocesos suelen mejorar el rendimiento del programa.
2. public static ExecutorService newFixedThreadPool(int nThreads) crea un grupo de subprocesos reutilizable con un número fijo de subprocesos y los ejecuta en una cola ilimitada compartida.
3. public static ExecutorService newSingleThreadExecutor() crea un Ejecutor que utiliza un único subproceso de trabajo y ejecuta el subproceso en una cola ilimitada. Los tres métodos se pueden utilizar con instancias de la interfaz ThreadFactory. Y devuelve una instancia de la interfaz ExecutorService.