Назад к вопросам
СБЕР
Junior — Middle
67
Чем отличается интерфейс Runnable от интерфейса Callable в Java?
Компании, где спрашивали
Ответ от нейросети
sobes.tech 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();