at java.util.concurrent.FutureTask.awaitDone
时间: 2024-11-29 10:36:03 浏览: 5
java.util.concurrent.uml.pdf
`FutureTask.awaitDone()`是Java并发库中FutureTask类的一个方法,它用于等待Future Task完成其异步计算任务。FutureTask通常与ExecutorService配合使用,当我们有一个需要后台执行的任务,并希望在主线程中处理结果时,可以将任务包装成FutureTask。
当你调用`awaitDone()`方法时,当前线程会阻塞,直到任务完成(无论成功还是失败),然后返回该FutureTask的结果。如果任务已经完成,`awaitDone()`将立即返回;如果任务还在运行,将会一直阻塞,直到任务结束。
语法大致如下:
```java
boolean awaitDone(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException
```
其中,`timeout`是一个可选的时间值,单位是`unit`,表示最多等待的时间。如果超过这个时间,方法将抛出`InterruptedException`。如果没有抛出异常,那么返回true表示任务已完成,false表示超时或被取消。
阅读全文