JAVA未来正在运行?

JAVA未来正在运行?,java,web-applications,concurrency,future,Java,Web Applications,Concurrency,Future,从未来(java.util.concurrent.future)可以知道它的进程当前是否正在运行吗?我正在尝试在web应用程序中构建一个视图,该视图显示某些进程的状态,并且只有当它完成或被取消时,我才能从未来获取该视图。关于布尔isDone()呢?如果仍在运行,则返回false。 否则,您可以启动一个线程,该线程调用get()并阻塞,直到完成为止。然后,该线程可以设置一个完成标志。关于布尔isDone()呢?如果仍在运行,则返回false。 否则,您可以启动一个线程,该线程调用get()并阻塞,

从未来(java.util.concurrent.future)可以知道它的进程当前是否正在运行吗?我正在尝试在web应用程序中构建一个视图,该视图显示某些进程的状态,并且只有当它完成或被取消时,我才能从未来获取该视图。

关于
布尔isDone()
呢?如果仍在运行,则返回false。
否则,您可以启动一个线程,该线程调用get()并阻塞,直到完成为止。然后,该线程可以设置一个完成标志。

关于
布尔isDone()
呢?如果仍在运行,则返回false。
否则,您可以启动一个线程,该线程调用get()并阻塞,直到完成为止。然后这个线程可以设置一个finished标志。

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

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

A
Future
是一个接口-这完全取决于您能够编辑实现未来的类代码的接口ear的实现?正如你可能会用事件来知道未来何时开始运行。我有这个想法,但我希望如果有一个更简单的解决方案,因为我有很多不同类型的流程,这意味着要创建很多事件。
Future
是一个接口-这完全取决于实现该接口的是什么。您可以编辑实现Future的类的代码吗?正如您可能会使用事件来了解未来何时开始运行。我考虑到了这一点,但我希望有一个更简单的解决方案,因为我有许多不同类型的进程,这将意味着创建许多事件。如果没有启动,它还返回isDone()。如果在队列中,它还返回“true”。添加了另一种方法。如果get还没有启动,它也应该被阻止。如果我错了,请纠正我。不,如果这是你想要的,那么没有办法确定未来是否在队列中。如果它没有完成,返回true不会违反isDone()的约定吗?isDone()表示如果它完成,返回true iff(!)它还返回isDone()如果未启动,则返回“true”。如果它位于队列中,则添加另一种方法。如果get还没有开始,它也应该被阻止。如果我错了,请纠正我。不,没有办法确定未来是否在队列中,如果这是你想要的。如果它没有完成,返回true不会违反isDone()的约定,即如果它完成,返回true iff(!)吗?你是对的,我添加了一个具有实例当前状态(isRunning)的布尔值。您是对的,我添加了一个具有实例当前状态(isRunning)的布尔值