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

Excel多线程导入数据库

文章目录

  • Excel多线程导入数据库
    • 1. CountDownLatch
    • 2.多线程导入数据库

Excel多线程导入数据库

书接上文 Excel20w数据5s导入

1. CountDownLatch

CountDownLatch 维护了一个计数器,初始值为指定的数量。当一个或多个线程调用 await() 方法时,它们会被阻塞,直到计数器的值变为 0。而其他线程可以通过调用 countDown() 方法来减小计数器的值,当计数器的值变为 0 时,所有处于等待状态的线程都会被唤醒。
需要注意的是,CountDownLatch 是一次性的,即计数器的值减为 0 后就不能再重置成其他值。

2.多线程导入数据库

dao

    @Insert("insert into excel(id,name,age) values (#{id},#{name},#{age})")void insert(Man man);

service

 public String add5() {ExcelReader reader = ExcelUtil.getReader(FileUtil.file("C:\\Users\\26896\\Desktop\\test.xlsx"), "sheet1");long startTime1 = System.currentTimeMillis();try {CountDownLatch latch = new CountDownLatch(200);int batch = 1000;for (int i = 1; i <= 200000; i += batch) {final int start = i; // 将循环变量赋值给新变量 startfinal int end = i + batch - 1; // 计算结束位置executor.submit(() -> {List<Man> read = reader.read(0, start, end, Man.class);excelDao.add(read);latch.countDown();});}latch.await();long startTime = System.currentTimeMillis();System.out.println("最终的结果为:" + (startTime - startTime1));} catch (Exception e) {e.printStackTrace();} finally {executor.shutdown();}return null;}

测试只需要在测试类中注入service调用方法即可
测试结果 这个结果包括从read读数据所以相对而言可能慢一点
在这里插入图片描述

http://www.lryc.cn/news/206657.html

相关文章:

  • Linux开机默认进入命令行或图形化模式
  • ajax请求的时候get 和post方式的区别?
  • 还不知道光场相机吗?
  • 软信天成:助力某制造企业建设产品主数据管理平台案例分享
  • C#WPFPrism框架导航应用实例
  • Centos安装gitlabce
  • android8.1- Show virtual keyboard 默认打开
  • 打印机连接网络后怎么安装驱动?
  • 光流法动目标检测
  • 【机器学习合集】泛化与正则化合集 ->(个人学习记录笔记)
  • 软考高级之系统架构师之数据流图和流程图
  • CVPR2023新作:基于组合空时位移的视频修复
  • 我的Windows10下的WSL的使用经历
  • 人声分离神仙网站,用过都说好~
  • 通过流量安全分析发现主机异常
  • 如何设计实时聊天系统的架构
  • js sm4实现加密解密
  • 安装 fcitx + 搜狗/谷歌输入法 之后导致 四季,重启后黑屏只有鼠标可以移动
  • kuaishou web端did注册激活 学习记录
  • Docker安装MariaDB
  • Uniapp中嵌入H5( uniapp开发的H5),并且在H5中跳转到APP的指定页面
  • 汽车托运哪个平台好
  • TailwindCSS使用并开启JIT(vue2)
  • 【CSS】伪类和伪元素
  • Dunham‘s sports EDI需求分析
  • 如何在Linux将Spring Boot项目的Jar包注册为开机自启动系统服务
  • LAMP项目部署实战
  • Tauri2 mobile development traps
  • 使用Jenkins触发gitlab的webhook
  • Vcenter 6.5 web 报错503解决办法