Red de conocimiento informático - Problemas con los teléfonos móviles - SpringBoot integra grupos de subprocesos y parámetros

SpringBoot integra grupos de subprocesos y parámetros

ThreadPoolConfig

ThreadController

AsyncService

AsyncServiceImpl

application.yaml

Resultado

Valores predeterminados de los parámetros y sus significados

Valores predeterminados de los parámetros y sus significados

Analizando el código fuente, podemos sacar las siguientes conclusiones:

1. Si el número de subprocesos en el grupo de subprocesos es lt; el número de subprocesos principales, cree un nuevo subproceso para realizar la tarea

2. Si el número de subprocesos en el grupo de subprocesos =; el número de subprocesos principales, luego coloque la tarea en la tarea en la cola

3. Si el número de subprocesos en el grupo de subprocesos> = el número de subprocesos principales y

4. Si el número de hilos en el grupo de hilos gt; el número de hilos principales, cuando el tiempo de inactividad del hilo excede keepalive, el hilo se destruirá; Se puede ver que la cola en el grupo de subprocesos es una cola ilimitada, luego configure el grupo de subprocesos si el grupo de subprocesos La cola de tareas está llena, el número de subprocesos alcanza maxPoolSize y no hay subprocesos inactivos para ejecutar nuevas tareas, el La política de rechazo se ejecutará cuando la tarea se envíe nuevamente

Política de rechazo

Explicación de la política de rechazo

La estrategia de rechazo RejectedExecutionHandler se divide en los siguientes cinco tipos

Conclusión

Estas estrategias no son buenas ni malas, solo son adecuadas para diferentes escenarios de aplicación. Cuál es la adecuada, elija según los escenarios de aplicación específicos y las necesidades comerciales. Puedes elegir uno bueno según tu propia definición.