Чем отличается newFixedThreadPool от newSingleThreadExecutor

173
30 апреля 2019, 12:50

Разбираю конкурентность и заметил такие вариации Executor-а Для однопоточности

   Executors.newSingleThreadExecutor()

И можно сделать так

 Executors.newFixedThreadPool(1);

По сути это аналоги ? или у них есть отличие ?Не бера в счет то что fixedPool настраеваемый . я про конкретно данный случай

Answer 1

Согласно описанию newSingleThreadExecutor() использует только один поток, что равнозначно: newFixedThreadPool(1). Но есть отличие от эквивалентного newFixedThreadPool(1), в том, что возвращенный исполнитель гарантированно не может быть перенастроен для использования дополнительных потоков.

А newFixedThreadPool(...) создает пул потоков с фиксированным количеством потоков.

Посмотрите описание этих методов:

public static ExecutorService newSingleThreadExecutor()

Creates an Executor that uses a single worker thread operating off an unbounded queue. (Note however that if this single thread terminates due to a failure during execution prior to shutdown, a new one will take its place if needed to execute subsequent tasks.) Tasks are guaranteed to execute sequentially, and no more than one task will be active at any given time. Unlike the otherwise equivalent newFixedThreadPool(1) the returned executor is guaranteed not to be reconfigurable to use additional threads.

public static ExecutorService newFixedThreadPool(int nThreads)

Creates a thread pool that reuses a fixed number of threads operating off a shared unbounded queue. At any point, at most nThreads threads will be active processing tasks. If additional tasks are submitted when all threads are active, they will wait in the queue until a thread is available. If any thread terminates due to a failure during execution prior to shutdown, a new one will take its place if needed to execute subsequent tasks. The threads in the pool will exist until it is explicitly shutdown.

READ ALSO
Как сравнить два аудио файла

Как сравнить два аудио файла

Я много искал как сравнить два аудио файла, но нигде не нашел пример такой задачи

173
Как остановить горизонтальный скрол?

Как остановить горизонтальный скрол?

Как остановить горизонтальный скролл, а затем скролить по горизонтали в обратном направлении

157
Динамическая подгрузка данных

Динамическая подгрузка данных

Ниже скрипт для подгрузки данных в таблицу на странице из БД, но в консоли ошибка, и я не понимаю в чем делоВот скрипт:

220
Запиь свойства в обьект JS

Запиь свойства в обьект JS

Нужно сделать проверку для обьекта и записать в него свойствоЕсли обьект существует то записываем в него свойство, если такого обьекта нет,...

156