Sobes.tech
Junior — Middle

Ինչ է տարբերությունը Runnable ինտերֆեյսի և Callable ինտերֆեյսի միջև Java-ում?

sobes.tech AI

Պատասխան AI-ից

Интерфейс Runnable в Java представляет задачу, которая может быть выполнена в отдельном потоке, но не возвращает результата и не может выбрасывать проверяемые исключения. Его метод:

void run();

Интерфейс Callable<V> похож, но он возвращает результат типа V и может выбрасывать исключения:

V call() throws Exception;

Основные отличия:

  • Runnable не возвращает результат, Callable — возвращает.
  • Callable может выбрасывать проверяемые исключения.
  • Callable используется с ExecutorService и возвращает Future<V>, что позволяет получить результат асинхронно.

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

Callable<Integer> task = () -> {
    // вычисления
    return 123;
};
ExecutorService executor = Executors.newSingleThreadExecutor();
Future<Integer> future = executor.submit(task);
Integer result = future.get();
executor.shutdown();