При чтении документов для Threadpool исполнителя я см ниже:Очистка план очереди в ограниченной ThreadPoolExecutor
Два поставляемых методы, удалить (java.lang.Runnable) и продувки() доступны, чтобы помочь в хранении рекультивация, когда большое количество поставленных задач отменяется.
Я понимаю, что, хотя я могу использовать эти методы для очистки рабочей очереди, если какие-либо задачи отменены. Я пытаюсь понять, какая часть в фактическом источнике делает эту очистку автоматически. Предположим, что я начинаю с очереди из 10, и из них 4 задания отменены, когда придет новая задача, размер очереди будет 6 или он просто проигнорирует 4 отмененную задачу и сбрасывается на 10.
От источник я вижу этот комментарий:
/**
* Tries to remove from the work queue all
* tasks that have been cancelled. This method can be useful as a
* storage reclamation operation, that has no other impact on
* functionality. Cancelled tasks are never executed, but may
* accumulate in work queues until worker threads can actively
* remove them. Invoking this method instead tries to remove them now.
* However, this method may fail to remove tasks in
* the presence of interference by other threads.*
*/
public void purge() {
Но может кто-то пожалуйста, покажите мне, где же рабочие потоки активно удалить отмененную задачу в источнике?
Спасибо за ваше время,
Благодаря @Buzz это имеет смысл. Я проверяю код, и я понимаю, что вы имеете в виду. Еще раз спасибо – duskandawn