Preguntas de la entrevista de subprocesos de Java: ¿Qué es un grupo de subprocesos? ¿Por qué usar un grupo de subprocesos?

Preguntas de la entrevista de subprocesos de Java: ¿Qué es un grupo de subprocesos? ¿Por qué usar un grupo de subprocesos?

Un grupo de subprocesos es un grupo de subprocesos que se reutilizan para manejar una gran cantidad de tareas simultáneas. Al usar el grupo de subprocesos, se puede reducir la cantidad de creación y destrucción de subprocesos, se puede mejorar la utilización de recursos y se puede administrar y controlar mejor la cantidad y el estado de ejecución de los subprocesos. Usemos un ejemplo para ilustrar el uso del grupo de subprocesos en Java:

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class ThreadPoolDemo {
    
    
    public static void main(String[] args) {
    
    
        // 创建一个可重用、固定线程数的线程池
        ExecutorService threadPool = Executors.newFixedThreadPool(3);
        // 向线程池中添加 10 个任务
        for (int i = 0; i < 10; i++) {
    
    
            Runnable task = new Task(i);
            threadPool.execute(task);
        }

        // 禁止提交新任务,并试图终止所有正在执行的任务
        threadPool.shutdown();
        // 判断是否所有任务都已经执行完成
        while (!threadPool.isTerminated()) {
    
    
            Thread.yield();
        }
        System.out.println("All tasks are completed.");
    }
}

class Task implements Runnable {
    
    
    private int number;

    public Task(int number) {
    
    
        this.number = number;
    }

    @Override
    public void run() {
    
    
        System.out.println("Task " + number + " is running on thread " + Thread.currentThread().getName());
        try {
    
    
            Thread.sleep(1000);
        } catch (InterruptedException e) {
    
    
            e.printStackTrace();
        }
        System.out.println("Task " + number + " is completed on thread " + Thread.currentThread().getName());
    }
}

En el ejemplo anterior, primero creamos un grupo de subprocesos con un tamaño fijo de 3 threadPooly luego agregamos 10 tareas al grupo de subprocesos, todos los cuales implementaron Runnablela interfaz . Cuando se ejecuta cada tarea, muestra el número de la tarea actual y el nombre del subproceso en el que se encuentra, y muestra la información de finalización después de dormir durante 1 segundo. Finalmente, llame al método de apagado para prohibir el envío de nuevas tareas, e intente terminar todas las tareas que se están ejecutando, y muestre "Todas las tareas se completaron" después de esperar a que se ejecuten todas las tareas.

Resumen: el grupo de subprocesos maneja una gran cantidad de tareas simultáneas mediante la creación previa de un grupo de subprocesos, lo que puede mejorar la utilización de recursos, administrar y controlar la cantidad de subprocesos y el estado de ejecución, y puede hacer frente mejor a los requisitos de procesamiento de tareas en alta concurrencia. entornos.

Supongo que te gusta

Origin blog.csdn.net/qq_51447496/article/details/131167180
Recomendado
Clasificación