java中ExecutorService使用多线程处理业务
Posted nizuimeiabc1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中ExecutorService使用多线程处理业务相关的知识,希望对你有一定的参考价值。
ExecutorService executorService = Executors.newFixedThreadPool(5); List<CancelApprovalCallable> callables = new List<>(); for(int i=0,len=idsArray.size();i<len;i++) String id = idsArray.get(i); CancelApprovalCallable callable = new CancelApprovalCallable(id,domain); callables.add(callable); List<Future<JSONObject>> resultList = new ArrayList<>(); try resultList = executorService.invokeAll(callables); catch(InterruptedException e) log.error("execute concurrent thread error",e); finally if(!executorService.isShutdown() || !executorService.isTerminated()) executorService.shutdown(); /** *批量获取线程执行结果,循环处理每条结果数据 */ for(Future<JSONObject> future : resultList) JSONObject resp2 = null; try resp2 = future.get(); catch(Exception e) log.error("execute concurrent thread error",e); if(resp2 == null) continue;
class CancelApprovalCallable implements Callable<JSONbject> private String id; private String domain; CancelApprovalCallable(String id,String domain) this.id=id; this.domain = domain; /* (non-Javadoc) * @see java.util.concurrent.Callable#call() */ @Override public JSObject call() throws Exception return null;
以上是关于java中ExecutorService使用多线程处理业务的主要内容,如果未能解决你的问题,请参考以下文章
Java多线程ExecutorService与ExecutorCompletionService
java多线程之Executor 与 ExecutorService两个基本接口