当前位置: 首页 > news >正文

淘宝网发布网站建设全媒体广告策划营销

淘宝网发布网站建设,全媒体广告策划营销,手机网站有用吗,烟草网站建设通过多线程读取数据,使用EasyExcel按顺序导出数据 导出时如果要保证顺序需要使用单线程,但是查询时可以用多线程,因为多线程查询后返回数据不是按照顺序排列的,所以我的思路是再循环时给每个线程打标识,通过标识来排序…

通过多线程读取数据,使用EasyExcel按顺序导出数据

导出时如果要保证顺序需要使用单线程,但是查询时可以用多线程,因为多线程查询后返回数据不是按照顺序排列的,所以我的思路是再循环时给每个线程打标识,通过标识来排序多线程返回的结果

创建一个Future对象,用于排序多线程查询结果

	static class Result {final Integer threadId;final List<UserInfo> data;Result(Integer threadId, List<UserInfo> data) {this.threadId = threadId;this.data = data;}}
	@PostMapping("export3")public void export3(HttpServletResponse response) throws IOException, InterruptedException, ExecutionException {// 查询总数Long dataCount = userInfoMapper.selectCount();// 每页条数Long searchCount = 100000L;// 获取页数并向上取整 5.2 -> 6int ceil = (int) Math.ceil((double) dataCount / searchCount);// 使用线程池ExecutorService executorService = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());List<Future<Result>> futures = new ArrayList<>();Map<Integer, Result> resultsMap = new ConcurrentHashMap<>();// 通过多线程查询,并设置线程IDfor (int i = 1; i <= ceil; i++) {Integer pageNum = Math.toIntExact((i - 1) * searchCount);int finalI = i;futures.add(executorService.submit(() -> new Result(finalI, userInfoMapper.getList(pageNum, searchCount))));}// 收集所有线程的结果for (Future<Result> future : futures) {resultsMap.put(future.get().threadId, future.get());}// 通过线程ID排序List<Result> sortedResults = resultsMap.values().stream().sorted(Comparator.comparingInt(result -> result.threadId)).collect(Collectors.toList());// 构建表头WriteCellStyle headWriteCellStyle = new WriteCellStyle();headWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);WriteCellStyle contentWriteCellStyle = new WriteCellStyle();contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);HorizontalCellStyleStrategy horizontalCellStyleStrategy = new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);// 设置返回格式response.setHeader("Content-Disposition", "attachment; filename=test" + DateUtil.format(new Date(), "yyyyMMddHHmmss") + ".xlsx");response.setContentType("application/vnd.ms-excel");response.setCharacterEncoding("UTF-8");ExcelWriter excelWriter = EasyExcelFactory.write(response.getOutputStream(), UserInfo.class).registerWriteHandler(horizontalCellStyleStrategy).needHead(true).excelType(ExcelTypeEnum.XLSX).build();// 如果是单sheet,则放在循环外面,多sheet放在循环里面WriteSheet writeSheet = EasyExcelFactory.writerSheet("Sheet1").head(UserInfo.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).registerWriteHandler(horizontalCellStyleStrategy).build();try {// 使用单线程写入ExcelsortedResults.forEach(r -> excelWriter.write(r.data, writeSheet));} finally {executorService.shutdown();excelWriter.finish();}}
http://www.zhongyajixie.com/news/58049.html

相关文章:

  • 哈尔滨网站建设网络优化长沙seo推广公司
  • 法律问题咨询哪个网站做的好企业站seo
  • 小企业网站建设系统哪个好微信小程序官网
  • 网站维护模式公司想建个网站怎么弄
  • 知乎 网站开发工具凡科网站建站教程
  • 怎么做单页竞价网站聊城优化seo
  • 郑州给公司做网站的公司长沙本地推广平台
  • 党团建设网站官网seo怎么做
  • dede茶叶网站模板游戏搜索风云榜
  • 手机视频网站怎么做买卖交易平台
  • 那个网站做3d私域运营软件
  • wordpress 风格网站的seo
  • 工商局网站清算组备案怎么做千部小黄油资源百度云
  • 河南省住房和城乡建设厅网站首页昭通网站seo
  • 基于搜索引擎的网站推广方式公司怎么做网站推广
  • php网站开发软件编程24小时人工在线客服
  • 深圳民治网站建设宁波seo服务推广
  • 建设通类似网站百度top排行榜
  • 如何快速写一个网站高清视频网络服务器
  • 济南网站建设jnwuyi百度首页关键词优化
  • 三水网站开发策划方案模板
  • 内网网站建设改版方案以下哪个单词表示搜索引擎优化
  • 济宁市网站建设电销系统
  • 从做系统后以前的网站打不开了怎么办如何优化关键词搜索
  • 过年做哪个网站能致富seo教程技术资源
  • 中原建设信息网 网站关键词挖掘工具免费
  • 如何做wap网站做网站好的网站建设公司
  • 网站你的后台管理系统用什么做免费的网站推广平台
  • 网站如何做好优化上海seo顾问
  • 用模板做的网站不好优化seo诊断a5