怎么用CompletableFuture .supplyAsync
时间: 2023-06-07 11:12:18 浏览: 222
CompletableFuture.supplyAsync可以用于异步执行一个方法并返回一个结果。具体使用方法如下:
1. 定义一个有返回值的方法,例如:
```
public String doSomething() {
// 假装耗时操作
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return "Hello, World!";
}
```
2. 调用supplyAsync方法:
```
CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> doSomething());
```
supplyAsync方法会在内部开启一个新的线程,异步地执行doSomething方法,并将结果封装成一个CompletableFuture对象返回。
3. 获取执行结果:
```
future.thenAccept(result -> System.out.println(result));
```
thenAccept方法会在异步任务完成后执行,接受任务的执行结果作为参数进行处理。
需要注意的是,CompletableFuture.supplyAsync方法默认使用ForkJoinPool.commonPool作为线程池,如果需要使用自定义的线程池,可以使用CompletableFuture.supplyAsync(Supplier<U> supplier, Executor executor)方法,并传入自定义的线程池。
阅读全文