如果要在执行数据库更新之前收集所有结果,则可以使用该
invokeAll方法。如daveb建议的那样,如果您一次提交一项任务,则可以完成簿记工作。
private static final ExecutorService workers = Executors.newCachedThreadPool();...Collection<Callable<User>> tasks = new ArrayList<Callable<User>>();for (final String id : ids) { tasks.add(new Callable<User>() { public User call() throws Exception { return svc.getUser(id); } });}List<Future<User>> results = workers.invokeAll(tasks, 10, TimeUnit.SECONDS);for (Future<User> f : results) { User user = f.get(); ...}...
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)