Cepillo preguntas de la entrevista 20: contrato y en el grupo de subprocesos ¿Qué?

image.png


Java proporciona las discusiones del grupo de subprocesos pueden simplificar la administración, mejorar la utilización de los recursos de rosca.




Hola a todos, soy Li Fuchun, los temas son los siguientes:


Java que proporciona una agrupación de hebras? Cómo establecer el tamaño apropiado del grupo de subprocesos?


R: el paquete java.util.concurrent ofrece cinco grupo de subprocesos, desde simples a complejos incluyen los siguientes:


una, newSingleThreadExecutor (), agrupación de hebras individuales, cada vez que un trabajador es, el orden de la cola de la cola de tareas está garantizada sin límites ejecución;


dos, newFixedThreadPool (int), un número fijo de grupo de subprocesos en cualquier momento subprocesos de trabajo son N, cola sin límites para uso interno;


tres, newCachedThreadPool () en caché grupo de subprocesos, por un tiempo corto un gran número de tareas de procesamiento realizadas;


cuatro, newWorkStealingPool (int) robar el trabajo del grupo de subprocesos, java8 introducido uso interno ForkJoinPool lograr


cinco, newScheduledThreadPool (), adecuada para el manejo de tareas regulares o periódicos




cómo configurar correctamente el tamaño del grupo de subprocesos?


Necesidad de una tareas informáticas integrales a las características.
costo de CPU superior, el núcleo está generalmente establece en el número de hilos N (núcleos de CPU)
en espera de más tareas, el núcleo N se establece en el número de hilos es generalmente utilización de la CPU (1 + tiempo de espera medio / tiempo de ejecución promedio)


mientras se usa el grupo de subprocesos cuando, nota 5 puntos:
1, para evitar la acumulación de tarea
2, para evitar una expansión excesiva del hilo, y el hilo a la fuga de evitar;
3, a un punto muerto eVITAR, el uso racional de todos los tipos de cerraduras;
4, evitar el uso de ThreadLocal;

image.png

parámetros de grupo de subprocesos


estructura de grupo de subprocesos se muestra a continuación:

image.png



expediente


5 tipos de hilo de la piscina para evitar el uso de los tres primeros, debe establecer sí mismos precisas seis parámetros de la piscina hilo.


Por las siguientes razones:


1, newSingleThreadExecutor (), la cola de trabajo es cola sin límites, cola de trabajo fuera de los límites conducir fácilmente a un problema de desbordamiento de memoria.

 public static ExecutorService newSingleThreadExecutor() {
        return new FinalizableDelegatedExecutorService
            (new ThreadPoolExecutor(1, 1,
                                    0L, TimeUnit.MILLISECONDS,
                                    new LinkedBlockingQueue<Runnable>()));
    }


2, newFixedThreadPool (int), la cola de trabajo se cola sin límites, es apto para causar problemas más allá de los límites de desbordamiento de la memoria;
 public static ExecutorService newFixedThreadPool(int nThreads) {
        return new ThreadPoolExecutor(nThreads, nThreads,
                                      0L, TimeUnit.MILLISECONDS,
                                      new LinkedBlockingQueue<Runnable>());
    }

3, newCacheThreadPool (), el número máximo de hilos es demasiado grande, fácilmente dar lugar a fugas de la rosca;

    public static ExecutorService newCachedThreadPool() {
        return new ThreadPoolExecutor(0, Integer.MAX_VALUE,
                                      60L, TimeUnit.SECONDS,
                                      new SynchronousQueue<Runnable>());
    }

resumen


Benpian responde agrupación de hebras de Java común, y un análisis del significado de los parámetros del grupo de subprocesos y el modelo de grupo de subprocesos;




a continuación, se describe brevemente cómo sintonizar la piscina excelente hilo parámetros de atención, así como el uso.

image.png

El original no es fácil, por favor indique la fuente.

Supongo que te gusta

Origin www.cnblogs.com/snidget/p/12599523.html
Recomendado
Clasificación