Red de conocimiento del abogados - Ley de patentes - 4. Uso del grupo de subprocesos

4. Uso del grupo de subprocesos

Grupo de subprocesos: si hay una gran cantidad de subprocesos y cada subproceso ejecuta una tarea breve y luego finaliza, la creación frecuente de subprocesos aumentará en gran medida la sobrecarga del sistema, porque la creación y destrucción de subprocesos requiere recursos y time

Ejemplo simple:

Análisis:

Lo anterior es crear directamente un nuevo grupo de subprocesos para ejecutar, pero el manual de desarrollo de Alibaba prohíbe el uso de esto. Método Inicie un grupo de subprocesos. Se recomienda utilizar ThreadPoolExecutor para crearlo

Veamos primero el código fuente de ThreadPoolExecutor

Analicemos los parámetros proporcionados por el constructor

.

Ali recomienda que usemos ThreadPoolExecutor para crear un grupo de subprocesos. La razón es que crear subprocesos de esta manera es más flexible y puede personalizar el grupo de subprocesos según su propio negocio.

La fuente. El código de ThreadPoolExecutor no se explicará aquí hasta el próximo artículo. Aquí hablaremos sobre la ejecución del proceso ThreadPoolExecutor y cómo activar el inicio del hilo de ejecución de MaximumPoolSize.

Ejemplo anterior:

Copiaré y analizaré los resultados de ejecución anteriores:

Amigos que vieron los resultados de la ejecución Todos se sorprendieron, ¿por qué la secuencia de ejecución de 1, 2 y 3 saltó repentinamente a 54 tareas y luego después de procesar 62 tareas, se ejecutaron 4 o menos tareas y la siguiente secuencia fue normal

Motivo: el grupo de subprocesos está definido para tener un núcleo de 3 subprocesos, por lo que se ejecutan de 1 a 3 tareas, no hay problema ! El grupo de subprocesos subsiguientes-4-hilos-(4-12) son todos de tamaño máximo de grupo: subproceso central = subproceso temporal que se creará. Aquí está el punto clave. Estos subprocesos temporales se crean cuando su cola de trabajo está llena. la cola de trabajo no se procesa primero y las tareas que no se pueden almacenar en la cola de trabajo se entregan directamente al subproceso temporal para su procesamiento. Por lo tanto, el subproceso temporal ejecuta directamente las tareas 54-62 y luego, después del procesamiento, va a la cola. para obtener la ejecución de la tarea desde el principio, por lo que después de ejecutar las 62 tareas, la secuencia de ejecución posterior es normal. Cuando se ejecuta a continuación, el número de tareas directas llega a 29381082, aquí comencé la ejecución de la tarea y el procesamiento falló, o la tarea se descartó cuando la cola de trabajos estaba llena, por lo que la cantidad de tareas guardadas en la cola de trabajos fue 29381082, y luego la tarea especificada se obtuvo a través del hilo