zoukankan      html  css  js  c++  java
  • 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;
            }
            
        }
  • 相关阅读:
    linux配置PHP环境!!(云服务器架设)
    JQ上传预览+存数据库
    AJAX做增删改查详细!
    JS解析XML
    UEditor编辑器的使用
    php注释规范
    phpexcel导出数据表格
    简单分析JavaScript中的面向对象
    制作smarty模版缓存文件
    求二叉树中节点的最大距离
  • 原文地址:https://www.cnblogs.com/nizuimeiabc1/p/11031218.html
Copyright © 2011-2022 走看看