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();
  • 相关阅读:
    【SPOJ1825】Free Tour II-点分治+桶排序
    【BZOJ3238】差异(AHOI2013)-后缀自动机+树形DP
    Vacation
    Function
    Path
    杭电oj初体验之 Code
    挑7
    行游散记!
    坐标移动
    STL之pair类型
  • 原文地址:https://www.cnblogs.com/shihaiming/p/11411922.html
Copyright © 2011-2022 走看看