Callable — это интерфейс из пакета java.util.concurrent, предназначенный для выполнения задач, которые могут возвращать результат и выбрасывать исключения.
Основные отличия от Runnable:
| Признак | Runnable | Callable |
|---|---|---|
| Возвращаемое значение | void | Generic тип V |
| Исключения | Не может выбрасывать checked исключения (только RuntimeException) | Может выбрасывать checked исключения |
| Метод | run() | call() |
Метод call() интерфейса Callable имеет сигнатуру:
java
Для выполнения задачи, реализованной интерфейсом Callable, обычно используется ExecutorService. Результат выполнения можно получить с помощью объекта Future, который возвращается методами submit() класса ExecutorService.
Пример использования:
java
Callable предоставляет более гибкий механизм выполнения задач по сравнению с Runnable, особенно когда требуется получить результат выполнения или обработать специфические исключения.