Требовать запуска FutureTask до отмены
В моем коде Callable я использую сигнализацию, чтобы уведомить о нескольких окончаниях поведения в другом потоке. Вызываемые объекты помещаются в очередь с FutureTasks в Executor. Они также могут быть отменены после постановки в очередь.
Теперь моя проблема в том, что я полагаюсь на задачи, запускаемые по крайней мере, для того, чтобы моя сигнализация работала, но похоже, что Исполнитель просто пропускает задачу, если она была помечена как отмененная, прежде чем он получил возможность ее запустить.
Итак, есть ли способ гарантировать, что задача всегда запускается и всегда отменяется (посредством InterruptedException) во время выполнения.
Кроме того, вы можете проверить, не была ли задача запущена, но провалилась?
1 ответ
Вероятно, вы можете создать подкласс класса FutureTask и переопределить его метод done() для выполнения сигнализации. Согласно документации, этот метод следует вызывать, даже если задача была отменена.