JAVA Future isRunning?

时间:2012-12-11 20:38:53

标签: java web-applications concurrency future

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

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