相关动态
多线程处理大数据量查询
2024-11-10 17:48

最近在实现一个导入功能,数据量在5w左右,后续会持续增长,使用的是easyExcel,读取文件性能较好,但因为每条数据都要做复杂的数据校验,导致整体响应时间在三四十分钟,虽然说导入不是直接和用户交互,但现在数据量不算很大的情况下,这个响应时间还是需要优化的,读取文件速度在几秒以内,主要是在数据校验这块,所以就使用了多线程去工作。

多线程处理大数据量查询

主要代码

 

思路: 1:先计算出查询总量,根据服务器的cpu核数,求每个线程应处理的条数 2.使用Callable返回结果,然后聚合数据,最后处理。

这里有个问题就是线程池合理的线程数你是如何考虑的?这也是之前面试遇到的一个题

1.先看下机器的CPU核数,然后在设定具体参数

System.out.println(Runtime.getRuntime().availableProcessors());

即CPU核数 = Runtime.getRuntime().availableProcessors()

2.分析下线程池处理的程序是CPU密集型,还是IO密集型

CPU密集型:核心线程数 = CPU核数 + 1

IO密集型:核心线程数 = CPU核数 * 2

:IO密集型(某大厂实践经验


    以上就是本篇文章【多线程处理大数据量查询】的全部内容了,欢迎阅览 ! 文章地址:http://dh99988.xhstdz.com/quote/62787.html 
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 物流园资讯移动站 http://dh99988.xhstdz.com/mobile/ , 查看更多   
发表评论
0评