【发布时间】:2017-08-04 04:37:48
【问题描述】:
我有一个 Executors.newfixedThreadPool() 调用提交,显然提交返回未来包装的 StringBuffer 对象。我需要在响应 StringBuffer 中附加结果。我可以在List<Future<StringBuffer>> 中得到结果,然后再次迭代以追加响应StringBuffer。但我想像下面这样在单次迭代中做到这一点,但它附加了未来的对象。有什么方法可以实现吗?
ExecutorService es = Executors.newFixedThreadPool(count);
for (int i = 0; i < count; i++) {
response.append(es.submit(new Callable<StringBuffer>() {
@Override
public StringBuffer call() {
StringBuffer res = new StringBuffer();
res = processAddresses(addresses, addressLatch);
return res;
}
}));
}
try {
addressLatch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
es.shutdownNow();
【问题讨论】:
-
您需要保留订单吗?
-
不一定。但如果我们有订单就好了
标签: java multithreading executorservice