Descripción general del ejecutor

En la biblioteca de clases de Java, la principal abstracción de la ejecución de tareas no es Thread, sino Executor.

public interface Executor {

    void execute(Runnable command);
}

Proporciona una base para un marco de ejecución de tareas asincrónico flexible y potente que puede admitir muchos tipos diferentes de estrategias de ejecución de tareas. Proporciona un método estándar para desacoplar el proceso de envío de tareas del proceso de ejecución y utilizar Runnable para representar la tarea. La implementación de Executor también brinda soporte para el ciclo de vida, así como mecanismos para la recolección de información estadística, mecanismos de administración de aplicaciones y monitoreo del desempeño.

Modelo de programación de dos niveles del marco del ejecutor

Para Java, Executor descompone un programa multiproceso en varias tareas y luego usa un programador a nivel de usuario para mapear estas tareas en un número fijo de subprocesos. Para la capa inferior, el kernel del sistema operativo asigna estos subprocesos al procesador de hardware .

Como se puede ver en la figura anterior, el programa de aplicación controla la programación de nivel superior a través del marco Executor, mientras que la programación de nivel inferior está controlada por el kernel del sistema operativo, y la programación de nivel inferior no está controlada por la jerarquía de la aplicación. .

La estructura del marco del Ejecutor

  • Tarea: interfaz ejecutable [tarea devuelta], interfaz invocable [tarea devuelta]
  • Ejecución de tareas: incluye Executor, la interfaz central del mecanismo de ejecución de tareas y la interfaz ExecutorService heredada de Executor.
  • El resultado del cálculo asincrónico: Future y FutureTask

Supongo que te gusta

Origin blog.csdn.net/weixin_39443483/article/details/114681325
Recomendado
Clasificación