V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
rqxiao
V2EX  ›  程序员

Java 后端 做 excel 导入数据用开新线程的办法提高导入速度 是否有效

  •  
  •   rqxiao · 2019-12-16 16:56:31 +08:00 · 2587 次点击
    这是一个创建于 1808 天前的主题,其中的信息可能已经有所发展或是发生改变。

    excel 假如有一百万条数据

    代码中写一段 记录条数达到 2000 条时,

    来一句 new Thread() {........}.start();

    是否可行

    8 条回复    2019-12-16 19:11:23 +08:00
    dekuofa
        1
    dekuofa  
       2019-12-16 17:06:21 +08:00
    ForkJoinPool?
    chendy
        2
    chendy  
       2019-12-16 17:09:32 +08:00
    个人观点:
    做好分批批量插入就差不多了
    多线程感觉不是很划算,可能需要处理”某个线程插入失败“之类的情况,线程太多对数据库的压力也可能会比较大
    以及需要多线程的场景要用线程池不要 new Thread…
    phantomzz
        3
    phantomzz  
       2019-12-16 17:11:02 +08:00
    读的话,如果所有数据都在一个文件里面,效果应该不明显吧。
    SupperCoder
        4
    SupperCoder  
       2019-12-16 17:14:26 +08:00
    可以 1 个线程专门读取 excel 数据,再开多个线程用于写数据
    soulzz
        5
    soulzz  
       2019-12-16 17:27:04 +08:00
    保证正确性时多线程写单个文件反而更慢
    Asice
        6
    Asice  
       2019-12-16 17:27:56 +08:00
    性能明显在写,多线程写
    rumingruyue
        7
    rumingruyue  
       2019-12-16 17:45:47 +08:00
    可以用多线程,但是建议用线程池而不是手动创建线程,核心线程数和可用 CPU 数一致或者少一两个。
    另外可以了解下 completablefuture
    gaius
        8
    gaius  
       2019-12-16 19:11:23 +08:00
    取决于你用的框架
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4187 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 05:26 · PVG 13:26 · LAX 21:26 · JFK 00:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.