【发布时间】:2020-05-30 03:34:44
【问题描述】:
我必须遍历一个列表并为每个对象调用一个方法,但是是并行的。在循环之后,还有其他语句,必须等待并行方法调用。我怎样才能在 JAVA 中做到这一点?
public void a(List<Object> list) {
for(Object o : list) {
asynchMethod(o); // this n method call must run in the same time
}
// wait for all asynchMethod result
/**
* ...other statements
*/
}
private void asynchMethod(Object o) {
// some code
}
【问题讨论】:
-
你使用的是 java 8 吗?
-
@BeUndead 是的,我使用的是 java 8
-
调用
asynchMethod(obj)是否修改obj知道结果已经完成?你怎么等?如果YourObject.class包含类似isCompleted() -
不是从
asynchMethod返回void,而是返回一个Future对象。然后您可以加入并等待Future
标签: java asynchronous parallel-processing async-await