java - java.util.concurrent.Future 不一致?

标签 java concurrency future

为了争论,假设我正在为一个不可取消的任务实现 FutureJava 6 API doc说:

After [cancel()] returns, subsequent calls to isDone() will always return true.

[cancel()] returns false if the task could not be cancelled, typically because it has already completed normally

它还说:

[isDone()] returns true if this task completed.

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

最佳答案

看起来文档应该说

After cancel() returns true, subsequent calls to isDone()...

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

关于java - java.util.concurrent.Future 不一致?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2967303/

相关文章:

java - 在这种情况下如何扩展自定义布局并编辑 View ?

testing - GO 中的并发编程测试

java - 如何并行调用返回 future 的方法?

scala - Scala 中 Await.result 和 futures.onComplete 的区别

java - 从 txt 文件中获取所有文本并打印到控制台

javax.net.ssl.SSLHandshakeException : sun. security.validator.ValidatorException : PKIX path building failed happens on one machine, 但不是另一个

java - 如何在 Tomcat 服务器上运行的 Spring MVC 应用程序中使用单个 "application wide"线程池

postgresql - 如何并发创建Gin索引? POSTGRES 和 Rails 4.2

python - `DummyExecutor` 用于 Python 's ` future `

java - 在 JTabbedPane 中的选项卡之间切换组件