Sobes.tech
Back to questions
Middle
427

Что такое интерфейс Callable в Java?

Answer from AI

sobes.tech AI

Интерфейс Callable в Java представляет собой задачу, которая может быть выполнена в отдельном потоке и возвращает результат. В отличие от Runnable, который не возвращает значения и не может выбрасывать проверяемые исключения, Callable<V> возвращает объект типа V и может выбрасывать исключения.

Основные особенности:

  • Метод call() возвращает результат выполнения.
  • Позволяет использовать с ExecutorService для асинхронного выполнения задач и получения результата через Future.

Пример использования:

import java.util.concurrent.*;

public class CallableExample {
    public static void main(String[] args) throws Exception {
        ExecutorService executor = Executors.newSingleThreadExecutor();

        Callable<Integer> task = () -> {
            // Некоторая вычислительная задача
            Thread.sleep(1000);
            return 42;
        };

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

        // Можно выполнять другие операции

        Integer result = future.get(); // блокирует, пока задача не завершится
        System.out.println("Результат: " + result);

        executor.shutdown();
    }
}