Red de conocimiento informático - Problemas con los teléfonos móviles - SpringBoot utiliza un grupo de subprocesos.

SpringBoot utiliza un grupo de subprocesos.

El grupo de subprocesos es un patrón de uso de subprocesos. Demasiados subprocesos generarán costos adicionales, incluido el costo de crear y destruir subprocesos, el costo de programar subprocesos, etc. y también puede reducir el rendimiento general de su computadora. El grupo de subprocesos mantiene varios subprocesos, esperando que el programa de administración asigne tareas que se puedan ejecutar al mismo tiempo. Por un lado, este método evita la sobrecarga de crear y destruir subprocesos al procesar tareas. Por otro lado, evita el problema de programación excesiva causado por la expansión del número de subprocesos, asegurando la utilización completa del núcleo.

Hay varias ventajas al usar un grupo de subprocesos:

Para el desarrollo de Java, utilizamos el entorno JDK y el marco de desarrollo es básicamente un depósito de la familia Spring. El principio básico del grupo de subprocesos está en JDK1.5 y agrega clases relacionadas con el grupo de subprocesos en el paquete jar principal rt.jar, en java.util.concurrent

Mire la clase de relación de herencia del grupo de subprocesos en jdk. Figura:

En JDK, se crean varios grupos de subprocesos con diferentes funciones utilizando ThreadPoolExecutor. Puedes apagarlos y echarles un vistazo:

Mira qué características tienen:

Como se puede ver en lo anterior, cada uno tiene sus propias características, pero Alibaba no lo recomienda. Utilice lo anterior al desarrollar código de grupos de subprocesos, ya que pueden desperdiciar recursos de servicio, se recomienda utilizar grupos de subprocesos personalizados de ThreadPoolExecutor.

Spring encapsula el grupo de subprocesos en Java y proporciona una implementación predeterminada, o puede personalizar el grupo de subprocesos. Generalmente uso el paquete de grupo de subprocesos de Spring.

El grupo de subprocesos de Spring es básicamente el mismo que el de JDK, bajo el paquete org. springframework.scheduling.Concurrency.

En correspondencia con JDK, la interfaz de nivel superior de Spring es TaskExecutor, que implementa la interfaz Executor de JDK.

El grupo de subprocesos comúnmente utilizado en Spring es ThreadPoolTaskExecutor, implementado en Java. JDK y ejecutores subcontratados de util.concurrent.threadpool.

Para usar el grupo de subprocesos, primero debe comprender algunos parámetros en el grupo de subprocesos:

Debido a que comúnmente usamos el grupo de subprocesos ThreadPoolExecutor, vaya a esta clase para encontrarlo.

El grupo de subprocesos se configura arriba y se genera un bean del grupo de subprocesos, que es administrado por el contenedor Spring y se puede usar durante la inyección.

El grupo de subprocesos SpringBoot se ensambla automáticamente en el jar spring-boot-autoconfigure en org. Clase de configuración automática de ejecución de tareas.

Condiciones de ensamblaje automático:

Cuando se envía una nueva tarea al grupo de subprocesos, el proceso principal del grupo de subprocesos es el siguiente:

El número de subprocesos principales -->; Cola de subprocesos-->Número máximo de subprocesos-->Política de rechazo

Por lo tanto, al utilizar el grupo de subprocesos, es necesario prestar atención a: