В чём разница между Runnable и Callable?

Middle
346 просмотров
AFK Offer AI

Runnable.run() не возвращает значение и не бросает checked exceptions. Callable.call() возвращает результат типа V и может бросать Exception. Callable используется с ExecutorService.submit() — возвращает Future, через который получаешь результат. Runnable — для fire-and-forget задач, Callable — когда нужен результат или нужно пробросить исключение. С CompletableFuture чаще используют Supplier и Runnable, но Callable всё ещё актуален для ExecutorService.

Следующий вопрос

Как работает JIT компилятор — C1 и C2 компиляторы?