Java 未来的任务何时完成

Java 未来的任务何时完成,java,concurrency,future,Java,Concurrency,Future,将来的任务点击return语句时,isDone()==true是否视为已完成? 例如: ExecutorService executor = newSingleThreadExecutor(); Future<> result = executor.submit(new Runnable() { @Override public void run() {

将来的任务点击return语句时,
isDone()==true
是否视为已完成? 例如:

ExecutorService executor = newSingleThreadExecutor();
Future<> result = executor.submit(new Runnable()
            {
                @Override
                public void run()
                {
                   return;
                }
            }
ExecutorService executor=newSingleThreadExecutor();
未来结果=executor.submit(new Runnable())
{
@凌驾
公开募捐
{
返回;
}
}

结果在点击
返回时是否被视为已完成?

或多或少。javadoc的确切含义不明确,但一般来说,当可调用项返回时,在
isDone()
之后不久将为真(或者如果发生异常,则为真).

完成
未来。get
被视为锁定点a
未来的完成

引自

Future表示异步计算的结果。提供了用于检查计算是否完成、等待其完成以及检索计算结果的方法。只有在计算完成时,才能使用方法get检索结果,必要时阻塞,直到计算完成。Ca取消安装通过取消方法执行。提供了其他方法来确定任务是否

换句话说,直到
Future
未完成对
Future的调用为止。get
将被阻止,因此
Future的完成。get
应视为
Future
的完成(正常或例外)

p.S.:
Future.isDone
只能用于检查状态,而不能作为
Future
完成时的指示