线程池并行查询 12345678910111213141516171819202122232425262728293031323334353637383940/*** 多线程并行查询*/private IbStatistics parallelQuery(IbStatistics statistics, ... ...) throws InterruptedException { //创建线程池执行器(最好是自定义线程池,参考阿里巴巴java开发规范) ExecutorService executorService = Executors.newFixedThreadPool(4); //创建线程任务1 executorService.submit(() -> { //积分当日发放总数: 端&日期 Long releasedTotal = ibUserrecordService.getIntegralTotalByDate(... ...); statistics.setStatisticsReleasedtotal(releasedTotal); }); //创建线程任务2 executorService.submit(() -> { //积分当日消耗总数: 端&日期 Long usedTotal = ibUserrecordService.getIntegralTotalByDate(... ...); statistics.setStatisticsUsedtotal(usedTotal); }); //创建线程任务3 executorService.submit(() -> { //积分当日发放人数: 端&日期 Integer releasedUserTotal = ibUserrecordService.getUserCountByDate(... ...); statistics.setStatisticsReleasedusertotal(releasedUserTotal); }); //创建线程任务4 executorService.submit(() -> { //积分当日消耗人数: 端&日期 Integer usedUserTotal = ibUserrecordService.getUserCountByDate(... ...); statistics.setStatisticsUsedusertotal(usedUserTotal); }); //关闭线程任务 executorService.shutdown(); //关闭执行器, awaitTermination 在线程池中的正在执行的任务和队列中的任务线程全部执行完成前处于阻塞状态 executorService.awaitTermination(Long.MAX_VALUE, TimeUnit.MINUTES); //用户持有积分总数=当日发放总数-当日消耗总数 statistics.setStatisticsHoldtotal(... ...); //持有积分用户人数=当日发放人数-当日消耗人数 statistics.setStatisticsHoldusertotal(... ...); return statistics;} 02_编程语言 > 01_Java > 01_JavaSE > 05_并发和锁 #线程池 #JavaSE 线程池并行查询 https://janycode.github.io/2021/10/17/02_编程语言/01_Java/01_JavaSE/05_并发和锁/线程池并行查询/ 作者 Jerry(姜源) 发布于 2021年10月17日 许可协议 🔗 复制链接 📢 分享到微博 🐦 分享到 Twitter 📘 分享到 Facebook 💬 分享到微信 微信扫一扫分享 × 打开微信扫一扫,点击右上角分享 Stream实现原理分析 上一篇 MySQL解析json字符串 下一篇 Please enable JavaScript to view the comments