java Future怎么返回结果,给出代码示例?
时间: 2024-02-07 15:03:39 浏览: 169
Future示例
好的,关于您的问题,我可以回答。Java Future可以通过调用get()方法来获取结果,在调用get()方法时,如果任务尚未完成,则当前线程将阻塞并等待直到任务完成,并返回结果。以下是一个简单的示例代码:
```java
import java.util.concurrent.*;
public class FutureExample {
public static void main(String[] args) throws InterruptedException, ExecutionException {
ExecutorService executor = Executors.newCachedThreadPool();
Future<Integer> future = executor.submit(new Task());
Integer result = future.get();
System.out.println(result);
executor.shutdown();
}
}
class Task implements Callable<Integer> {
@Override
public Integer call() throws Exception {
Thread.sleep(1000);
return 1;
}
}
```
在这个示例中,我们使用了一个Callable任务来模拟需要耗费一定时间才能返回结果的场景。我们通过调用submit()方法将任务提交给ExecutorService线程池,并返回了一个Future对象。然后,在main()方法中调用future.get()方法来等待任务的完成并获取结果,最后关闭线程池。希望这可以解答您的问题。
阅读全文