java多线程问题

有这样一个问题,想请教一下大家:
我有一个导出Excel文件的功能,导出前需要查询并统计几百万的数据,统计成三条记录后再最后写入excel。
我想使用多线程提高资源的使用率来提高系统的效率,不知道是否可行?如果可行这个多线程的程序该怎么设计?是否该用单例模式?

4个回答

[quote]我有一个导出Excel文件的功能,导出前需要查询并统计几百万的数据,统计成三条记录后再最后写入excel。
我想使用多线程提高资源的使用率来提高系统的效率,不知道是否可行?如果可行这个多线程的程序该怎么设计?是否该用单例模式? [/quote]

1 看需求是什么,能否用sql在数据库做
2 先用单线程做,看是否有效率问题,如果有,再考虑多线程,比较多线程编程负责,维护成本高
3 如果用多线程,一种方法是按记录数处理,例如每个线程处理10w条,处理完后,再把各个线程处理完的结果合并
4 是否用“单例模式”要看需求,建议少用单例模式,特别是多线程环境。

[quote]sql执行起来太慢了[/quote]

为什么这么慢,除了记录数太多,看看是否sql语句写的不好,另外能否建立必要的索引。

可以研究一下mysql的explain语句,解释一下写的sql。

多线程是解决资源分配问题,但现在你统计是瓶颈,也就是mysql的执行效率。几百万统一出来三条,觉得是不是可以用 定时任务 解决你们这咱非主流需求,如果不能,觉得是你们的表设计有问题。做成定时任务进行一个海选,将结果存在另外一些表里,再在同步操作时进行50强的PK,不是更有效率?

不会是每次需要统计都进行一次SQL统计吧,Excel文件可以存在服务器上,定时更新,多次使用.写个定时器,
至少SQL性能,你也说了能做的都做了,还能怎么样.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐