grupo de subprocesos proceso para realizar tareas

Después de que el grupo de subprocesos es la forma de trabajo, tomar prestado un libro de arte de programación concurrentes palabras para describir cuando una tarea presentada al grupo de subprocesos del grupo de subprocesos será cómo hacerlo?

En primer lugar, la agrupación de hebras determinará el núcleo del hilo grupo de subprocesos (número total de hilos es 30, entonces puede haber coreSize 10) si todas las tareas. Si usted no dice que sólo el 9 del hilo actual crea un nuevo hilo en el trabajo, desde el núcleo del grupo de subprocesos para realizar la tarea. Si actualmente tiene 10 hilos en el trabajo, y luego entrar en el siguiente paso;

en segundo lugar, la agrupación de hebras determinará si la cola de trabajo es completa, si la cola de trabajo no está lleno, la tarea se almacena en la cola de trabajos recién presentada, si el trabajo la cola está llena, a continuación, introduzca el siguiente proceso;

y, por último, el grupo de subprocesos si todos los hilos están trabajando, y si no, es decir, 30 hilos de sólo el 25 de trabajo, crear un nuevo subproceso de trabajo para llevar a cabo la tarea, si ya tiene 30 hilos de ejecutar, no hay hilo vacío,

a continuación, a la estrategia de saturación para hacer frente a esta tarea (la estrategia de saturación por defecto para lanzar una excepción).
Después de enviar la tarea intentará primero el núcleo de hilo grupo de subprocesos que ver, pero un número limitado de hilos debe ser el núcleo de la agrupación de hebras, es necesario hacer una cola de memoria intermedia por la tarea, la primera tarea de poner la cola en primer lugar, y luego hilo para ejecutar la espera, finalmente, porque demasiadas tareas, la cola estaba llena, y esta vez el resto de la rosca grupo de subprocesos se iniciará un grupo de subprocesos a la misión ayuda núcleo. Si todavía no hay manera de hacer frente adecuadamente a la tarea recién llegado, la tarea de la nueva agrupación de hebras solo puede presentarse a la estrategia de saturación de tratar.

Crear un nuevo grupo de subprocesos ThreadPoolExecutor (corePoolSize, maximumPoolSize, KeepAliveTime, milisegundos,

runnableTaskQueue, manejador);

El manejador último parámetro es una estrategia de saturación, java marco del grupo de subprocesos puede proporcionar cuatro tipos de estrategias:

1) AbortPolicy: tiro directo una excepción

2) CallerRunsPolicy: donde sólo el hilo de llamada para ejecutar la tarea

3) DiscardOldestPolicy: recientemente caído de la cola de una tarea, y ejecutar la tarea actual.

4) DiscardPolicy: sin tratamiento, descartado.

Por último, se incluye un grupo de subprocesos max = 5, el núcleo = 3, la tarea cola TaskQueue = 5; con la estrategia saturado 1)

a continuación, nos fijamos en esta lógica de ejecución para enviar la tarea a la agrupación de hebras de la siguiente manera:

1) En primer lugar, presentó tarea para el grupo de subprocesos, cuando el número de la base de hilos que no son útiles, se iniciará una de hilo de núcleo para realizar tareas, recuerde que debe ilustrar este proceso, teniendo la tarea de nuestro tiempo es muy largo, por lo que un corto período de tiempo no va a terminar;

2) el segundo tercio y luego se someten a la tarea del grupo de subprocesos, la misma lógica para llevar a cabo su primera tarea es exactamente el mismo, se iniciará el hilo de núcleo del grupo de subprocesos del grupo de subprocesos para realizar las dos tareas restantes de su nueva presentación.

3) Luego están los nuevos envío de trabajos más, esta vez encontró el grupo de subprocesos del grupo de subprocesos del núcleo del hilo ya están en el trabajo, se analizará si TaskQueue cola de tareas está llena, y no encontrar, está vacío, por lo que este cuando la tarea en la cola de tareas para el hilo de núcleo Piscina hebras en espera mismos tienen que tomar la ejecución de la tarea.

4) A continuación, se sometió a cuatro tareas del grupo de subprocesos, fueron juzgados hilo de núcleo está inactivo, no se tarda, y luego determinar si la cola de tareas está llena, la insatisfacción, directamente en la cola de tareas;

5) seguido de una nueva tarea de nuevo , a continuación, después de juzgar el grupo de subprocesos de núcleo y la cola de tareas, la tarea todavía se encuentra ninguna manera de tratar con determinará si el número máximo de hilos y se encontró que no, el nuevo hilo se pone en marcha para realizar la tarea;

6) luego vino una tarea, realice el mismo procedimiento 5);

7) Una de las tareas más, encontrar el núcleo del grupo de subprocesos está ocupada, la cola de tareas se completa, todos los hilos de la piscina son también en el trabajo, no hay manera de tratar con él, así que encontró una estrategia de saturación, porque la estrategia es de banda de saturación por defecto anormal, por lo que el hilo de rosca de la piscina le dirá someter la tarea ha habido ningún hilo puede utilizar el.

Más que un número de la base de hilos es de 3, el número total de hilos es 5, la longitud de la cola de tareas es 5, proceso de adopción política predeterminada Lanza estrategia desde el principio hasta el final de la agrupación de hebras operar a plena capacidad

Más materiales de aprendizaje de Java puede estar preocupado por: itheimaGZ get

Publicados 735 artículos originales · ganado elogios 3 · Vistas de 110.000 +

Supongo que te gusta

Origin blog.csdn.net/u010395024/article/details/104834511
Recomendado
Clasificación