【发布时间】:2020-04-03 20:45:07
【问题描述】:
我有 Service.class 和 start() 方法:
public void start() {
for (int i = 0; i < companiesList.size(); i++) {
asychronous.someAsynchronous(...);
}
log.info("Start method has finished");
}
我有 Asynchronous.class 和 someAsynchronous() 方法:
@Async("threadPoolTaskExecutor")
public CompletableFuture<Void> someAsynchronous(some_parameters) {
//do some stuff
return null;
}
log.info() 在 someAsynchronous() 方法完成之前出现。
如何强制它等待log.info() 直到循环中的someSynchronous() 方法完成?顺便说一句:完成循环后异步线程仍在运行。
【问题讨论】:
-
当然之前出现过,这就是异步执行方法的全部意义所在。您确定该方法应该是异步的吗?但是你仍然可以得到
CompletableFutures 并等待那些。 -
@Kayaman 它们在新的单独线程中执行,这很好,但我想让它们完成,然后让主线程继续。
标签: java spring spring-boot asynchronous java-8