我使用的是 JDK 11, 我有这个:
@Async("somegthing")
public void process(Some some) {...}
...
{
list.stream()
.someOperationWhoCanOnlyBeDoneOneAStream()
.forEach(::process);
someOtherMethod();
}
在启动 someOtherMethod 之前,我需要等待 foreach 结束。 我该怎么做? 我认为这是显而易见的,但我没有任何异步方面的技能
最佳答案
其中一种方法:
import java.util.concurrent.CompletableFuture;
....
@Async("somegthing")
public void process(Some some) {...}
...
{
CompletableFuture<String> task = CompletableFuture.supplyAsync(() -> {
list.stream()
.someOperationWhoCanOnlyBeDoneOneAStream()
.forEach(::process);
return "completed";
});
task.thenAccept(finres -> {
someOtherMethod();
});
}
关于java - 等待 javaStream 上的 forEach 结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61899240/