当@Async正在执行时,可以通过使用Future或CompletableFuture来让调用者方法等待。
- 使用Future:
- 在调用@Async方法时,将返回值类型设置为Future类型。
- 在调用者方法中,通过调用Future的get()方法来等待@Async方法的执行结果。
- 如果@Async方法还未执行完毕,get()方法会阻塞调用者线程,直到@Async方法执行完毕并返回结果。
- 示例代码:
- 示例代码:
- 使用CompletableFuture:
- 在调用@Async方法时,将返回值类型设置为CompletableFuture类型。
- 在调用者方法中,通过调用CompletableFuture的get()方法来等待@Async方法的执行结果。
- 如果@Async方法还未执行完毕,get()方法会阻塞调用者线程,直到@Async方法执行完毕并返回结果。
- 示例代码:
- 示例代码:
以上是让调用者方法等待@Async方法执行的两种常见方式。在实际应用中,可以根据具体需求选择合适的方式。