CompletableFuture.get 不调用,异步操作执行了
时间: 2023-10-28 09:54:59 浏览: 240
是的,CompletableFuture.get 是一个阻塞方法,它会等待异步操作的完成并返回结果。但是,如果您没有调用 CompletableFuture.get,异步操作仍然会在后台执行。这是因为 CompletableFuture 使用线程池来执行异步操作,因此异步操作会在后台线程中执行,而不会阻塞主线程。所以,如果您不需要等待异步操作的结果,可以不调用 CompletableFuture.get,而是让它在后台执行。
相关问题
CompletableFuture.get 不调用
CompletableFuture.get() 方法是一个阻塞方法,会等待异步操作完成并返回结果。如果不调用该方法,异步操作将不会被执行,也不会返回任何结果。
因此,如果想要异步执行操作并获取结果,必须调用 CompletableFuture.get() 方法。如果不想阻塞当前线程,可以使用 CompletableFuture.thenApply()、CompletableFuture.thenAccept()、CompletableFuture.thenRun() 等方法来实现异步操作的执行和结果处理。
CompletableFuture.get()
CompletableFuture.get() 是一个 Java CompletableFuture 类的方法,用于等待异步任务完成并返回其结果,它会阻塞当前线程,直到异步任务执行完毕并返回结果。
通常情况下,CompletableFuture.get() 方法应该在调用 CompletableFuture 对象的异步方法后使用。例如:
```
CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> {
return "Hello, World!";
});
String result = future.get();
System.out.println(result); // 输出 "Hello, World!"
```
在上面的代码中,我们创建了一个 CompletableFuture 对象,并调用了它的 supplyAsync() 方法,这个方法接受一个 Supplier 函数作为参数,返回一个 CompletableFuture 对象。然后,我们使用 CompletableFuture.get() 方法来等待异步任务完成并返回结果。
需要注意的是,如果异步任务执行失败或被取消,CompletableFuture.get() 方法将会抛出异常。因此,在使用这个方法时需要适当地处理异常。
阅读全文