【发布时间】:2020-03-10 06:04:30
【问题描述】:
我正在使用 completablefuture 从 springboot 应用程序中的异步线程返回。我的实现如下。据我了解,应该为列表中的每个项目启动一个新线程,并且应该并行处理。我知道 .get 会阻止执行,但由于它是并行运行的,我仍然看不到性能有任何改进。请在下面提出任何建议以提高性能?
ServiceA.java
@Autowired
ServiceB serviceb;
public List<String> getNames(List<Item> items) {
List<CompletableFuture<String>> list = new ArrayList<>();
List<String> returnList = new ArrayList<>();
for( Item item: items) {
CompletableFuture<String> getItemName = serviceb.doProcess(item);
list.add(getItemName):
}
for( CompletableFuture name : list) {
returnList.add(name.get());
}
return returnList;
}
ServiceB.java
Class ServiceB {
@Async
Public CompletableFuture<String> doProcess(Item item)
{
//do process
}
【问题讨论】:
标签: java multithreading spring-boot asynchronous parallel-processing