java futur用法
时间: 2023-11-23 10:06:28 浏览: 28
Java中的Future是一个接口,用于表示一个异步计算的结果。它提供了一些方法来检查计算是否已经完成、等待计算完成以及获取计算结果。
以下是一些Java Future的常见用法:
1. 提交任务并获取Future对象:
```java
ExecutorService executor = Executors.newFixedThreadPool(1);
Future<Integer> future = executor.submit(() -> {
// 执行一些耗时的计算任务
return 42;
});
```
2. 检查计算是否完成:
```java
if (future.isDone()) {
// 计算已完成
}
```
3. 等待计算完成并获取结果:
```java
try {
Integer result = future.get(); // 阻塞直到计算完成
// 使用计算结果
} catch (InterruptedException e) {
// 处理中断异常
} catch (ExecutionException e) {
// 处理计算异常
}
```
4. 设置超时时间:
```java
try {
Integer result = future.get(1, TimeUnit.SECONDS); // 在指定时间内等待计算结果
// 使用计算结果
} catch (TimeoutException e) {
// 处理超时异常
} catch (InterruptedException e) {
// 处理中断异常
} catch (ExecutionException e) {
// 处理计算异常
}
```
5. 取消任务:
```java
boolean cancelled = future.cancel(true); // 取消任务并尝试中断执行线程
if (cancelled) {
// 任务已取消
}
```
这些是Java Future的一些基本用法,你可以根据具体需求进行调整和扩展。注意在使用Future时要注意处理异常和取消任务的情况。