Back to questions
Junior — Middle
55
В чем заключается роль интерфейсов Callable и Runnable в Java, и какой класс реализует эти интерфейсы?
Answer from AI
sobes.tech AI
В Java интерфейсы Runnable и Callable используются для описания задач, которые могут выполняться в отдельных потоках.
- Runnable — представляет задачу, которая не возвращает результат и не выбрасывает проверяемых исключений. Метод
run()не возвращает значение. - Callable<V> — похож на Runnable, но может возвращать результат типа V и выбрасывать исключения. Метод
call()возвращает значение.
Класс Thread реализует интерфейс Runnable, что позволяет создавать потоки, выполняющие код из метода run().
Пример использования Callable с ExecutorService:
ExecutorService executor = Executors.newSingleThreadExecutor();
Callable<Integer> task = () -> {
// Некоторая вычислительная задача
return 123;
};
Future<Integer> future = executor.submit(task);
Integer result = future.get();
executor.shutdown();