【发布时间】:2023-04-03 09:27:02
【问题描述】:
我有一个如下所示的异步方法,它调用我的 Task 类,我的 Task 类完成所有工作。
@Override
public Future<DataResponse> executeAsync(DataKey key) {
Future<DataResponse> future = null;
try {
Task task = new Task(key, restTemplate);
future = executor.submit(task);
} catch (Exception ex) {
// logging exception here
}
return future;
}
下面是我的 Task 类,它完成了所有工作:
public class Task implements Callable<DataResponse> {
private DataKey key;
private RestTemplate restTemplate;
public Task(DataKey key, RestTemplate restTemplate) {
this.key = key;
this.restTemplate = restTemplate;
}
@Override
public DataResponse call() throws Exception {
// some code here
}
}
现在我需要并行调用executeAsync 方法,然后创建一个List<DataResponse> 对象并返回它。
@Override
public List<DataResponse> executeSync(DataKey key) {
List<DataResponse> responseList = new ArrayList<DataResponse>();
// make a List of DataKey using single key passed to this method.
List<DataKey> keys = new ArrayList<DataKey>();
for(DataKey key : keys) {
}
}
如何并行调用executeAsync 方法并返回responseList?在我的keys 列表中,最多有六个DataKey 对象。
【问题讨论】:
标签: java concurrency future executorservice callable