논의의 이유로, 내가 취소 할 수없는 작업에 Future
을 구현한다고 가정 해 봅시다. Java 6 API doc는 말한다 : isDone()
로 돌아 후속 호출은 항상 true
를 반환합니다java.util.concurrent.Future의 불일치?
[
cancel()
] 후.[
cancel()
] 반환false
이 작업은 이미
또한 말한다 정상적으로 완료 일반적으로하기 때문에, 취소 할 수없는 경우 :
[
isDone()
] 반환true
을이 작업을 완료합니다.
그러나 작업이 이미 완료되어 있기 때문에 단순히 취소 할 수 없기 때문에 내 취소 만이 아니라 실패하면? 이 모순에서 빠져 나갈 수있는 방법이 있습니까 (취소 할 수없는 작업을 취소 할 수 없게 만들고 그것을 모두 물리 치는 것 이외의 방법)?
"completed"의 자격이 누락되었습니다. '정상 종료, 예외 또는 취소로 인한 완료 일 수 있습니다.이 경우 모두이 메소드는 true를 반환합니다. ' –
'Future.cancel (boolean)'을 인용해도됩니다 : * 태스크가 이미 완료되었거나, 이미 취소되었거나, 취소 될 수없는 경우 ** 다른 이유로 인해 ** 시도는 실패합니다 **. 어떤 이유로 든 취소하지 않는 것이 합법적 인 것 같습니다. –