Junior — Middle
100
Java'da Runnable va Callable interfeyslari o'rtasidagi farq nima va ularni qanday ishlatish mumkin?
Qaerda so'ralgan kompaniyalar
AIdan javob
sobes.tech AI
Интерфейсы Runnable и Callable используются для выполнения задач в отдельных потоках, но имеют ключевые отличия:
- Runnable не возвращает результат и не может выбрасывать проверяемые исключения. Метод
run()возвращает void. - Callable<V> возвращает результат типа V и может выбрасывать исключения. Метод
call()возвращает значение.
Использование:
// Runnable
Runnable task = () -> System.out.println("Выполнение задачи");
new Thread(task).start();
// Callable
Callable<Integer> taskWithResult = () -> {
// какая-то логика
return 123;
};
ExecutorService executor = Executors.newSingleThreadExecutor();
Future<Integer> future = executor.submit(taskWithResult);
Integer result = future.get();
executor.shutdown();
Callable удобен, когда нужно получить результат из потока или обработать исключения.