Usando ExecutorService basado en el grupo de subprocesos JUC

Usando ExecutorService basado en el grupo de subprocesos JUC

El propósito del subproceso múltiple es a menudo mejorar la eficiencia del programa y mejorar la usabilidad del sistema. Pero la frecuente creación y destrucción de hilos es en sí misma algo perjudicial. Entonces, JUC de Java proporciona el uso de grupos de subprocesos.
Grupo de subprocesos: cree varios subprocesos por adelantado y colóquelos en el grupo de subprocesos, consígalos directamente cuando los use y vuelva a colocarlos en el grupo de subprocesos después de usarlos. Puede evitar la creación y destrucción frecuentes de hilos y realizar la reutilización.
beneficio:

  • Eficiencia de respuesta mejorada (reduce el tiempo de creación de subprocesos)
  • Reducir el consumo de recursos (reutilizar subprocesos en el grupo de subprocesos, no crear más)
  • Fácil de administrar.
    corePoolSize: tamaño del grupo principal
    maximumPoolSize: número máximo de subprocesos
    keepAliveTime: cuánto tiempo se detendrá el subproceso después de que no tenga tareas

JDK5.0 proporciona API de grupo de subprocesos relacionados: Executors y ExecutorService

La interfaz de grupo de subprocesos real de ExecutorService hereda la
clase de implementación común ThreadPoolExecurtor de Executor .

  • void ejecutor (Runable runable) El grupo de subprocesos inicia el subproceso. (Perteneciente al método de la clase Ejecutor)
  • void shutdown () Cerrar el grupo de conexiones (método de interfaz ExecutorService)
    Clase de herramienta Ejecutores , clase de fábrica del grupo de subprocesos, que se utiliza para crear y devolver diferentes tipos de grupos de subprocesos. Presta atención para distinguir al Ejecutor

Inserte la descripción de la imagen aquí

Pasos de implementación

  1. Crear servicio de grupo de subprocesos
  2. Hilo de ejecución

lograr:

    // 线程类
    static class ThreadTest implements Runnable{
    
    
        public void run() {
    
    
            System.out.println(Thread.currentThread().getName()+":执行了");
        }
    }
    
   // 执行类
       public static void main(String[] args) {
    
    
        // 创建线程服务,构造线程池为3
        ExecutorService executorService = Executors.newFixedThreadPool(3);
        // 启动线程
        executorService.execute(new ThreadTest());
        executorService.execute(new ThreadTest());
        executorService.execute(new ThreadTest());
        executorService.execute(new ThreadTest());
    }

Resultado: el grupo de subprocesos se define como 3, luego 4 subprocesos utilizan 3 subprocesos en el grupo de subprocesos.
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_31142237/article/details/115287418
Recomendado
Clasificación