多线程写excel数据思路
2023-09-14 09:08:22 时间
1背景
有时候会向excel文件中写入数据,为了提高写入速度,需要向每个sheet页同时写入数据;此时,可以采用多线程的方式同时进行写入,提高效率。
2思路
既然需要用到多线程的,那么肯定需要创建多线程的工具、控制多线程的工具。在这里提供这样一类工具:CountDownLatch类、ExecutorService类(这里只是一种方式,当然还有其他的方式)。
2.1CountDownLatch类
该类是用来同步多线程处理的类,只有等到每个线程运行完成后,它才会继续后面的流程;打个这样的比方:有十个人在十条跑道上比赛,每一个人占用一条跑道,在终点处有个计数员,他负责的任务是必须要等到10位运动员都跑到终点,他才可以宣布比赛结束,否则整个比赛还在继续进行。这里的CountDownLatch对象就是相当于计数员的角色。它用到的三个方法是:
- 构造函数:new CountDownLatch(线程个数)。
- counDown():每个线程结束时都要调用该方法,计数器减一。
- await():在主线程中调用该方法,一直等到计数器减到为0为止,否则主线程一直暂定在这里。
2.2ExecutorService类
可以通过Autowire注解的方式生菜ExecutorService对象,然后通过submit方法来启动一个线程,大致写法如下:
@Autowire private ExecutorService executorService; public void test() { executorService.submit(()->{ // Todo 具体的逻辑实现 }) }
2.3StopWatch类
这个类是一个用来分析任务耗时的工具类,非常直观、简洁;使用起来也很简单,大致如下:
StopWatch stopWatch = new StopWatch(Thread.currentThread().getStackTrace()[1].getMethodName()); stopWatch.start(“taskName”); // Todo 执行具体的任务 stopsWatch.stop();
数据分析示例:
----------------------------------------------
ns % Task name
3623048300 028% test2
114789400 010% test1
9120146000 071% test3
----------------------------------------------
- ns:时间单位,纳秒
- %:任务耗时占比,值越大,耗时越长
- Task name:任务名称
3小结
上文只是提到在遇到写excel时需要同时写入数据的实现思路,仅供参考。
相关文章
- 导出的Excel名字乱码_恢复的excel文件乱码
- java使用多线程导出excel「建议收藏」
- txt文本格式怎么转换成excel_文本格式转换为日期
- Excel: 通过VBA代码打开word文件
- mysql导入excel文件_将Excel数据导入MySQL「建议收藏」
- Excel技巧篇-利用数据透视表按单位分类拆分工作表
- poi-tl根据word模板导出word、使用spring-thymeleaf模板生成html并通过docx4j把html转word,使用jxls根据excel模板导出excel(1)[通俗易懂]
- 学习Python与Excel:使用Python和xlwt创建Excel工作表
- Poi实现Excel导出工具类封装详解编程语言
- 操作excel展示Linux下Poi妙用:操作Excel(linux下poi)
- ABAP-BarCode-2-Excel打印二维码详解编程语言
- 函数TEXT – EXCEL单元格中日期格式转换为文本格式详解编程语言
- 导入Excel数据到Oracle中的完美解决方案(oracle导入excel)
- MySQL快速导入Excel数据(mysql导入excel数据)
- MySQL数据导出Excel快速教程(mysql转excel)
- MYSQL与EXCEL:实现数据管理的双重力量(mysql与excel)
- 步骤简单!轻松实现SQL Server导入Excel操作(sqlserver导入excel)
- MySQL导入Excel:一步步实现数据导入(mysql导入excel)
- 如何将Excel数据导入MySQL数据库学习MySQL中Excel的基本用法(mysql中excel)
- 利用Excel快速导入Oracle数据库(excel导oracle)
- MySQL导出Excel文件(xlsx)时遇到错误的解决方法(mysql xlsx出错)
- ASP.NET技巧:数据岛出到Excel最为简易的方法
- Asp.Net用OWC操作Excel的实例代码
- Python读写Excel文件的实例