Junior — Middle
63
Объясните концепцию интерфейса Callable и его назначение в программировании.
Компании, где спрашивали
СБЕР Бизнес
Ответ от нейросети
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();