Sobes.tech
Junior — Middle
63

Объясните концепцию интерфейса Callable и его назначение в программировании.

Компании, где спрашивали
СБЕР Бизнес
AstonAston

Ответ от нейросети

sobes.tech AI

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

Это особенно полезно при работе с многопоточностью и асинхронным выполнением задач, например, при использовании ExecutorService для запуска задач и получения их результатов через объекты Future.

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

import java.util.concurrent.Callable;

public class SumTask implements Callable<Integer> {
    private int a, b;

    public SumTask(int a, int b) {
        this.a = a;
        this.b = b;
    }

    @Override
    public Integer call() throws Exception {
        return a + b;
    }
}

Затем эту задачу можно передать в ExecutorService и получить результат:

ExecutorService executor = Executors.newSingleThreadExecutor();
Future<Integer> future = executor.submit(new SumTask(5, 10));
Integer result = future.get(); // result будет 15
executor.shutdown();