推广 热搜: 行业  机械  设备    教师  经纪  系统  参数    蒸汽 

多线程处理大数据量查询

   日期:2024-11-10     移动:http://fhzcwj.xhstdz.com/mobile/quote/62787.html

最近在实现一个导入功能,数据量在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://fhzcwj.xhstdz.com/quote/62787.html    物流园资讯网 http://fhzcwj.xhstdz.com/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


0相关评论
相关最新动态
推荐最新动态
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号