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();
ExecutorService java多线程分割list运行的更多相关文章
- 转:java多线程CountDownLatch及线程池ThreadPoolExecutor/ExecutorService使用示例
java多线程CountDownLatch及线程池ThreadPoolExecutor/ExecutorService使用示例 1.CountDownLatch:一个同步工具类,它允许一个或多个线程一 ...
- Java多线程运行机制的基本原理
Java多线程运行机制的基本原理 进程和线程的区别 进程 进程是一个程序执行的实例,比如说我们打开10个IE浏览器窗口,那么就有10个进程开启.一个进程可以同时被运行若干次,进程是CPU进行资源分配和 ...
- 【Java多线程】ExecutorService和ThreadPoolExecutor
ExecutorService Java.util.concurrent.ExecutorService接口代表一种异步执行机制,它能够在后台执行任务.因此ExecutorService与thread ...
- 【转】 Java 多线程之一
转自 Java 多线程 并发编程 一.多线程 1.操作系统有两个容易混淆的概念,进程和线程. 进程:一个计算机程序的运行实例,包含了需要执行的指令:有自己的独立地址空间,包含程序内容和数据:不同进 ...
- Java多线程(六) —— 线程并发库之并发容器
参考文献: http://www.blogjava.net/xylz/archive/2010/07/19/326527.html 一.ConcurrentMap API 从这一节开始正式进入并发容器 ...
- 【java】Java多线程总结之线程安全队列Queue【转载】
原文地址:https://www.cnblogs.com/java-jun-world2099/articles/10165949.html ============================= ...
- Java 多线程与并发【原理第二部分笔记】
Java 多线程与并发[原理第二部分笔记] 什么是Java内存模型中的happens-before Java内存模型,即JMM,本身是一种抽象的概念,并不是真实存在的,他描述的是一组规则或者说是一种规 ...
- Java 多线程:基础
Java 多线程:基础 作者:Grey 原文地址: 博客园:Java 多线程:基础 CSDN:Java 多线程:基础 顺序.并行与并发 顺序(sequential)用于表示多个操作『依次』处理.比如把 ...
- Java 多线程:线程池
Java 多线程:线程池 作者:Grey 原文地址: 博客园:Java 多线程:线程池 CSDN:Java 多线程:线程池 工作原理 线程池内部是通过队列结合线程实现的,当我们利用线程池执行任务时: ...
随机推荐
- 工控随笔_25_西门子TIA 博图V14.SP1安装报错,授权错误
前面有一篇文章说过西门子的软件安装的时候太麻烦,很容易出现错误. 但是有些错误在安装的时候却没有关系,例如下面的错误. 如上图所示,安装已经到最后一步,总结前面的修改系统组态已经打勾(✔) ,而且提示 ...
- echarts柱状图坐标文字显示不完整解决方式
echarts柱状图坐标文字显示不完整解决方式 本文转载自:https://jingyan.baidu.com/article/ab69b2707a9aeb2ca7189f0c.html echart ...
- JAVA中用StopWatch计算代码耗时的方法
StopWatch翻译过来的意思就是秒表,其作用也就像我们平时使用的秒一样.spring中就有提供这个工具类(org.springframework.util.StopWatch). 日常开发中,经常 ...
- hive 引入第三方包(不重启)
Jar放入${HIVE_HOME}/auxlib目录 在${HIVE_HOME}中创建文件夹auxlib,然后将自定义jar文件放入该文件夹中. 此方法添加不需要重启Hive.而且比较便捷. 连接方式 ...
- 工具分享:excel2json,将Excel表格转换为JSON
此次分享的是github上的一个开源小工具:excel2json,用于把Excel表转换成json对象,并保存到一个文本文件. 项目地址:https://github.com/neil3d/excel ...
- JavaEE 期末总结
struts2部分 一.struts2框架的集成: 1.web.xml配置struts2过滤器:前端控制器.核心控制器 如果有多个过滤器,需要将该过滤器放置到最后一个 2.struts.xml配置:主 ...
- Idea 目录结构下有红色波浪线
问题截图: 解决方案: Build -> Rebuild Project
- [.Net] 什么是线程安全的并发集合
System.Collections.Concurrent 为此,在.NET Framework中提供了System.Collections.Concurrent新的命名空间可以访问用于解决线程安全问 ...
- a++与++a,谈谈C++的参数传递
先看一段代码: #include<iostream> using namespace std; void func(int a, int b) { cout << a < ...
- 关于vuecli的一些问题
在vue打包之后,我们引入的css路径和js路径会变成绝对路径 需要在vue.config.js里面设置publicpath为"./" 同时在做前后端分离开发时,我们通常会用到ax ...