Sobes.tech
Junior — Middle
90

Wie kann man das Senden von Aufgaben und das Warten auf deren Abschluss mit ThreadPoolExecutor organisieren?

Unternehmen wurden gefragt
СБЕРСБЕР

Antwort von AI

sobes.tech KI

Для организации отправки задач и ожидания их завершения с использованием ThreadPoolExecutor в Java можно использовать следующий подход:

  1. Создать экземпляр ThreadPoolExecutor через Executors.newFixedThreadPool или другой фабричный метод.
  2. Отправить задачи на выполнение с помощью метода submit(), который возвращает объект Future.
  3. Для ожидания завершения задачи вызвать метод get() у объекта Future.

Пример:

import java.util.concurrent.*;

public class ThreadPoolExample {
    public static void main(String[] args) throws InterruptedException, ExecutionException {
        ExecutorService executor = Executors.newFixedThreadPool(3);

        Callable<String> task = () -> {
            Thread.sleep(1000);
            return "Задача выполнена";
        };

        Future<String> future = executor.submit(task);

        // Ожидаем завершения задачи и получаем результат
        String result = future.get();
        System.out.println(result);

        executor.shutdown();
    }
}

Таким образом, можно отправлять несколько задач и по необходимости ожидать их завершения, используя объекты Future.