用java写一个异步方法的列子
时间: 2024-05-15 20:16:37 浏览: 9
下面是一个使用Java语言编写的异步方法的示例:
```java
public class AsyncMethodExample {
public static void main(String[] args) {
AsyncMethodExample example = new AsyncMethodExample();
example.doAsyncTask();
System.out.println("Main thread is not blocked.");
}
public void doAsyncTask() {
CompletableFuture.supplyAsync(() -> {
// 模拟一个耗时的操作
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return "Hello, World!";
}).thenAccept(result -> {
System.out.println("Async task completed with result: " + result);
});
}
}
```
在这个示例中,我们使用了Java 8中新增的CompletableFuture类来实现异步方法。在doAsyncTask()方法中,我们使用CompletableFuture.supplyAsync()方法来启动一个异步任务,并在任务完成后使用thenAccept()方法对结果进行处理。
在主线程中,我们先调用doAsyncTask()方法启动异步任务,然后立即输出一条消息,证明主线程并未被阻塞。当异步任务完成后,我们会在控制台上输出一条消息,表示异步任务已经完成。
这个示例中的异步任务只是一个简单的模拟,实际应用中可能需要更复杂的异步操作,例如网络请求、数据库查询等。但是不管异步任务的具体实现如何,都可以使用CompletableFuture来实现异步方法的调用和结果处理。