• 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;
            }
            
        }
  • 相关阅读:
    3185 队列练习 1 3186 队列练习 2
    1063 合并果子
    堆排序
    奇怪的电梯
    3411 洪水
    2010 求后序遍历
    1729 单词查找树
    3137 栈练习1
    2821 天使之城
    括弧匹配检验(check.cpp)
  • 原文地址:https://www.cnblogs.com/nizuimeiabc1/p/11031218.html
Copyright © 2020-2023  润新知