Ради аргумента, скажем, я реализую Future
для задачи, которую нельзя отменить. Java 6 API документ говорит:
После возврата [cancel()
] последующие вызовы isDone()
всегда будут возвращать true
.
[cancel()
] возвращает false
, если задача не может быть отменена, как правило, потому что она уже была выполнена нормально
Там также сказано:
[isDone()
] возвращает true
, если эта задача выполнена.
Но что если моя отмена завершится неудачей не потому, что задача уже выполнена, а потому, что ее просто нельзя отменить? Есть ли выход из этого противоречия (кроме как сделать мою невыполнимую задачу отменяемой и вообще обойти ее)?