Sobes.tech
Back to questions
Junior — Middle
63

Каким образом можно организовать отправку задач и ожидание их завершения с использованием ThreadPoolExecutor?

Companies where asked
СБЕРСБЕР

Answer from AI

sobes.tech AI

Для организации отправки задач и ожидания их завершения с использованием 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.