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多线程系列七——ExecutorService

java多线程(ExecutorService)

java多线程之Executor 与 ExecutorService两个基本接口

Java--多线程之生产者消费者模式;线程池ExecutorService

java并发中ExecutorService的使用