Подтвердить что ты не робот

В чем разница между методом submit и execute с ThreadPoolExecutor

Я обнаружил, что есть два способа (отправить и выполнить), чтобы добавить Runnable в пул потоков, в чем разница?

4b9b3361

Ответ 1

Отличие состоит в том, что execute не возвращает Future, поэтому вы не можете дождаться завершения Runnable и получить любое исключение, которое оно использует.

Ответ 2

Метод submit(...) - это расширение структуры исполнителя, введенное в интерфейсе ExecutorService.

Основное отличие от execute(Runnable) заключается в том, что submit(...) может принимать Callable<V> (тогда как execute() принимает только Runnable) и возвращает экземпляр Future<V>, который вы можете использовать позже в вызывающем получить результат асинхронно (потенциально блокировать до завершения вычисления, выполненного с помощью Callable).

Ответ 3

Submit представляется более общей формой выполнения. В частности, submit возвращает объект Future, представляющий результат вычисления.

ThreadPoolExecutor-1

ThreadPoolExecutor -2