Требовать, чтобы FutureTask запускался до отмены - PullRequest
1 голос
/ 14 декабря 2010

В моем коде Callable я использую сигнализацию, чтобы уведомить несколько завершающих поведений другому потоку. Вызываемые объекты помещаются в очередь с FutureTasks в Executor. Они также могут быть отменены после постановки в очередь.

Теперь, моя проблема в том, что я полагаюсь на задачи, по крайней мере, запускаемые для того, чтобы моя сигнализация работала, но похоже, что Исполнитель просто пропускает задачу, если она была помечена как отмененная, прежде чем он получил возможность ее запустить. *

Итак, есть ли способ гарантировать, что задача всегда запускается и всегда отменяется (посредством InterruptedException) во время выполнения.

Кроме того, вы можете проверить, не была ли задача запущена, но провалилась?

1 Ответ

2 голосов
/ 14 декабря 2010

Возможно, вы подкласс класса FutureTask и переопределите его done () метод для выполнения сигнализации. Согласно документации, этот метод следует вызывать, даже если задача была отменена.

...