zoukankan      html  css  js  c++  java
  • 多线程分发处理List集合数据

    //List集合
    final List<PlyDayList> plyVO = plyDayListDao.selectPlyDayListKey(dataSumNo,sd,tstate);
    if(plyVO != null && plyVO.size() > 0){
    	//创建一个线程池
    	try {
    		int threadNum  = 10;//线程数自定义
    		int threadSize = plyVO.size()/threadNum;//给每个线程分发处理条数(总条数/线程数);
    		ExecutorService eService = Executors.newFixedThreadPool(threadNum);//创建线程池
    		List<Callable<String>> cList = new ArrayList<Callable<String>>(); 
    		Callable<String> task = null;
    		List<PlyDayList> sList = null;
    		for(int i=0;i<threadNum;i++){
    			if(i == threadNum - 1){
    				sList = plyVO.subList(i*threadSize, plyVO.size());
    			} else {
    				sList = plyVO.subList(i*threadSize, (i+1)*threadSize);
    			}
    			final List<PlyDayList> nowList = sList;
    			task = new Callable<String>() {
    				@Override
    				public String call() throws Exception {
    					StringBuffer sb = new StringBuffer();
    					for(int j=0;j<nowList.size();j++){
    						//处理需要处理的业务
    						int s = plyDayService.nvhlInsuranceResponse(nowList.get(j)); 
    						sb.append(s+"_");
    					}
    					//返回处理的结果集
    					return sb.toString();
    				}
    			};
    			cList.add(task);
    		}
    		List<Future<String>> results;
    		results = eService.invokeAll(cList);
    		for(Future<String> str:results){
    			//打印结果集
    			log.info(str.get());
    		}
    		eService.shutdown();
    	} catch (Exception e) {
    		e.printStackTrace();
    	}
    }
    
  • 相关阅读:
    windows下安装nginx
    java 32位MD5加密的大写字符串
    eclipse运行maven的jetty插件内存溢出
    Phpstorm Alt+Enter 自动导入类
    CSS 再学习,文本处理
    1406 data too long for column 'content' at row 1
    tp5.1报错 页面错误!请稍后再试
    lnmp升级php
    Tp5,Service使用
    CSS再学习 之背景色 背景图片
  • 原文地址:https://www.cnblogs.com/hmhhz/p/12515699.html
Copyright © 2011-2022 走看看