zoukankan      html  css  js  c++  java
  • ExecutorService java多线程分割list运行

     调用方法

               int threadNum = 7;
                while(true) {
                    List<FaceAnalyseImage> list = faceAnalyseImageMapper.selectAllWaitDetectLimit2000();
                    if(list == null || list.size() == 0) {
                        break;
                    }
                    if(list.size() <= threadNum) {
                        threadNum = list.size();
                    }
                    subList(list, threadNum);
                }

     list按线程数量分割

    StringBuffer ret = new StringBuffer();
    
            int size = list.size();
            ExecutorService executorService = Executors.newFixedThreadPool(nThreads);
            List<Future<String>> futures = new ArrayList<Future<String>>(nThreads);
            for (int i = 0; i < nThreads; i++) {
                final List<String> subList = list.subList(size / nThreads * i, size/ nThreads * (i + 1));
                Callable<String> task = new Callable<String>() {
                    public String call() throws Exception {
                        getDataRunByDistinctTruckid(subList);
                        return "";
                    }
                };
                futures.add(executorService.submit(task));
            }
    
            for (Future<String> future : futures) {
                ret.append(future.get());
            }
            executorService.shutdown();
    
            return ret.toString();
  • 相关阅读:
    pku3225 区间
    pku2136 Vertical Histogram
    NOI2006 最大获利
    APIO2010 特别行动队
    停电两夜
    偷偷乐一把
    那些花儿...
    一件一块钱的小事
    web service 的Section=ResponseStatusLine 错误和skype
    杂谈
  • 原文地址:https://www.cnblogs.com/shihaiming/p/11411922.html
Copyright © 2011-2022 走看看