Junior — Middle
84
Java'da Callable ve Runnable arayüzleri arasındaki farkları açıklayın ve her birini ne zaman tercih etmeniz gerektiğini belirtin.
Sorulan şirketler
ООО Ренью
AI'dan gelen yanıt
sobes.tech yapay zeka
Интерфейсы Runnable и Callable в Java используются для определения задач, которые могут выполняться в отдельных потоках, но имеют ключевые отличия:
-
Runnable:
- Метод
run()не возвращает результат и не может выбросить проверяемые исключения. - Используется, когда задача не требует возвращаемого значения.
- Пример:
Runnable task = () -> System.out.println("Выполнение задачи"); new Thread(task).start();
- Метод
-
Callable<V>:
- Метод
call()возвращает результат типаVи может выбросить исключения. - Используется, когда нужно получить результат выполнения задачи или обработать исключения.
- Обычно применяется с
ExecutorServiceиFutureдля получения результата асинхронно. - Пример:
Callable<Integer> task = () -> { // Некоторая вычислительная логика return 42; }; ExecutorService executor = Executors.newSingleThreadExecutor(); Future<Integer> future = executor.submit(task); Integer result = future.get(); executor.shutdown();
- Метод
Когда использовать:
- Если нужна простая задача без результата —
Runnable. - Если требуется результат или обработка исключений —
Callable.