4

为了争论,假设我正在Future为一个不可取消的任务实现。Java 6 API 文档说:

[ cancel()] 返回后,后续调用isDone()将始终返回true

[ cancel()]false如果任务无法取消,则返回,通常是因为它已经正常完成

它还说:

如果此任务完成,[ isDone()] 返回。true

但是,如果我的取消失败不是因为任务已经完成,而是因为它根本无法取消,该怎么办?有没有办法摆脱这种矛盾(除了让我无法取消的任务可以取消并完全回避它)?

4

1 回答 1

1

看起来医生应该说

cancel()返回true后,后续调用isDone()...

Javadocs 通常是完全错误和矛盾的,即使在 10 年后,Sun 也常常懒得去修复它们。仔细测试应始终补充文档。

于 2010-06-03T15:38:32.920 回答