Junior — Middle
რა განსხვავებაა Java-ში Runnable ინტერფეისსა და Callable ინტერფეისს შორის?
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();