2

从未来(java.util.concurrent.Future)有没有办法知道它的进程当前是否正在运行?我试图在 Web 应用程序中构建一个视图,该视图显示某些进程的状态,如果它完成或被取消,我只能从未来获得。

4

2 回答 2

2

怎么样boolean isDone()?如果它仍在运行,它返回 false。否则,您可以启动一个调用 get() 并阻塞直到完成的线程。然后这个线程可以设置一个完成标志。

于 2012-12-11T20:41:39.677 回答
2

这不是 a 的重点Future。关键是它是对未来结果的承诺,因此得名。它不保证它将如何或何时运行。它可以在当前线程上运行,在不同的线程上运行,或者我想可能在不同的进程中运行。因此,除了存在或不存在之外,它没有任何状态——这或多或少是重点。如果要监视某个线程的进度,则必须在较低的抽象层工作。

于 2012-12-11T20:50:25.317 回答