Какая разница между execute() и submit() у ExecutorService?

289
12 апреля 2017, 12:40

У ExecutorService есть два метода:

void execute(Runnable command) и

Future<?> submit(Runnable task).

Какая между ними разница в поведении потоков, кроме возвращаемого значения?

Answer 1

В классах ForkJoinPool, ThreadPoolExecutor и AbstractExecutorService submit использует execute. В классе ScheduledThreadPoolExecutor submit и execute используют перегруженный методschedule. Так что разницы нет.

execute это метод из интерфейса Executor

submit это метод из интерфейса ExecutorService который расширяет Executor.

Поскольку submit возвращает значение, то в нем происходит подготовка возвращаемого значения.

READ ALSO
Что значит аннотация @RequestApi

Что значит аннотация @RequestApi

Метод помеченный аннотацией @RequestApi не выполнится?

293
fasterxml.jackson и BigInteger

fasterxml.jackson и BigInteger

Каким способом(возможно аннотацией в модели) можно десерилизовать BigDecimal, чтобы избежать экспоненциальной формы записи, например сериализовал...

286
Как работать с DownloadManager?

Как работать с DownloadManager?

Файл передаётся между устройствами по локальной сети по средствам сокетов

261
Parallax эффект для андроида

Parallax эффект для андроида

Пытаюсь сделать parallax эффект, используя акселерометрНиже переопределённый метод OnSensorChanged:

284