CompletableFuture使用外部变量
时间: 2023-07-22 20:56:47 浏览: 185
Java面试常见问题总结(2024最新版)
在使用CompletableFuture时,可以通过使用外部变量来传递和获取数据。下面是一个示例:
```java
import java.util.concurrent.CompletableFuture;
public class CompletableFutureExample {
public static void main(String[] args) {
int externalVariable = 10;
CompletableFuture<Integer> future = CompletableFuture.supplyAsync(() -> {
// 在异步任务中使用外部变量
int result = externalVariable + 5;
return result;
});
future.thenAccept(result -> {
// 在任务完成后获取结果,并使用外部变量计算新的值
int newResult = result * externalVariable;
System.out.println("New result: " + newResult);
});
// 等待任务完成
future.join();
}
}
```
在上面的示例中,我们定义了一个外部变量`externalVariable`,在CompletableFuture的异步任务中使用它进行计算。然后,在任务完成后,我们使用外部变量计算新的值,并在`thenAccept`方法中进行处理。最后,我们使用`join`方法等待任务的完成。
需要注意的是,在使用外部变量时,需要确保外部变量是线程安全的。如果外部变量被多个任务共享,并且可能被同时修改,需要采取适当的同步措施,如使用锁或原子操作类来保证线程安全性。
阅读全文