java future的用法
时间: 2023-08-08 09:09:42 浏览: 134
Java Future接口是Java标准库中用于处理异步操作结果的一种机制。通过Future,我们可以提交一个异步任务,然后通过Future对象来获取任务的执行结果。
下面是Java Future的基本用法:
1. 创建一个Callable任务,实现call()方法来完成具体的任务逻辑。
```java
public class MyCallableTask implements Callable<String> {
@Override
public String call() throws Exception {
// 执行具体的任务逻辑,返回一个结果
return "Task completed!";
}
}
```
2. 创建一个ExecutorService线程池,用于提交任务并执行。
```java
ExecutorService executor = Executors.newSingleThreadExecutor();
```
3. 提交任务到线程池,并得到对应的Future对象。
```java
Future<String> future = executor.submit(new MyCallableTask());
```
4. 等待任务执行完成,并获取任务的执行结果。
```java
String result = future.get();
```
在上述代码中,Future.get()方法是一个阻塞方法,会等待任务执行完成并返回执行结果。如果任务尚未执行完成,调用get()方法的线程会被阻塞,直到任务执行完成并返回结果。
除了基本用法外,Java Future还可以通过cancel()方法来取消任务的执行,通过isDone()方法判断任务是否执行完成,通过isCancelled()方法判断任务是否被取消等。
阅读全文