private ExecutorService executor = Executors.newCachedThreadPool();//查询请求处理线程池
List<Map<String, String>> finalResult = null;
if (idList == null || idList.size() == 0 || StringUtil.isBlank(entityCode)) {//参数合法性校验
return finalResult;
}
finalResult = new ArrayList<Map<String, String>>();
List<Future<Map<String, String>>> futureList = new ArrayList<Future<Map<String, String>>>();
int threadNum = idList.size();//查询子线程数目
for (int i = 0; i < threadNum; i++) {
Long itemId = idList.get(i);
Future<Map<String, String>> future = executor.submit(new QueryCallable (entityCode, itemId));
futureList.add(future);
}
for(Future<Map<String, String>> future : futureList) {
Map<String, String> threadResult = null;
try {
threadResult = future.get();
} catch (Exception e) {
threadResult = null;
}
if (null != threadResult && threadResult.size() > 0) {//结果集不为空
finalResult.add(threadResult);
}
}
return finalResult;
}