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

哪个网站可以做全网推广创意设计网站大全

哪个网站可以做全网推广,创意设计网站大全,大连网站建设方案咨询,制作视频的app有哪些通过多线程读取数据,使用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.yayakq.cn/news/787340/

相关文章:

  • 电商网站充值消费系统网站建设的题目
  • 坪山网站建设公司建筑专业网站有哪些
  • 山西省建设工程网站网站建设重要
  • 手机网站建设可信赖营销策略ppt模板
  • 租凭境外服务器做违规网站三维家软件培训班
  • 酒店预订网站建设图片网站建设方案
  • 免费视频素材网站都有哪些网络营销推广方法和手段
  • 备案网站免网泉州网站建设多少钱
  • c 网站开发案例详解湘潭网站建设电话
  • 云邦北京网站建设超级门户博客版wordpress主题
  • 陕西 网站备案企业网络营销策划案例
  • 公司网站建设情况说明书网站外包如何报价
  • 自己做qq代刷网站要钱吗wordpress wampserve
  • 如皋网站定制如何分析一个网站开发语言
  • 个人网站备案容易吗电子商务网站推广的主要方法
  • 建设银行信用卡官方网站网上商城网站开发与建立的意义
  • 网站推广的基本方法是网站域名.xin
  • 网站jquery在线优化网页设计培训好学吗
  • 免费的微信小程序徐州关键字优化公司
  • 网站上传的工具推广系统建站
  • wamp做的网站标签图标中石化两学一做网站
  • 网站登记表网站删除关键词
  • 做网站有什么专业术语合肥网站建设哪家好
  • 高清做网站插图云南网站优化排名
  • 建设网站前需要的市场分析网站改版了
  • 网站做百度推广需要什么材料婚车租赁
  • 上海网站建设制作公司网站建设项目安排计划表
  • 网站建设公司如何签单网站一年续费多少钱
  • 中小企业网站制作流程外贸网站怎么做
  • 生活常识网站源码vps 网站 需要绑定域名吗