JAVA - Отмените выполняющиеся задачи ThreadPoolExecutor

То, в чем я нуждаюсь, является методом, подобным shutdownNow, но, смочь отправить новые задачи после этого. Мой ThreadPoolExecutor будет принимать случайное число задач во время моего выполнения программы.

5
задан rgomesf 13 May 2010 в 17:24
поделиться

3 ответа

Вы можете получить Future каждой отправки, сохранить это Future в коллекции, а затем, когда вы хотите отменить задачи, вызвать future.cancel () для всех задач в очереди.

В этом решении Exectuor все еще работает, и все выполняемые задачи отменяются или не будут выполняться, если они поставлены в очередь.

9
ответ дан 14 December 2019 в 04:32
поделиться

Почему бы не создать собственную ExecutorService , которая демонстрирует такое поведение?

0
ответ дан 14 December 2019 в 04:32
поделиться

Разве недостаточно просто выполнить getQueue() и очистить его? Если вам действительно нужно попытаться остановить запущенные задачи, вам нужно подклассифицировать ThreadPoolExecutor и по существу повторно реализовать shutdownNow(), но только скопировать бит, который посылает прерывание каждому потоку. Учтите, что это все равно не гарантирует, что вы действительно заставите их немедленно прекратить выполнение и не производить дальнейших вычислений. Вам понадобится совершенно другой подход, если вам нужно сделать это.

-1
ответ дан 14 December 2019 в 04:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: