JAVA多线程到底能不能加快程序运行速度?

我写了一个文件转换的程序,大概实现功能是这样的:将doc,docx,xls,xlsx,ppt,pptx...等类型文件拖进某个文件夹A,程序自动将所有文件转换成txt格式... 我写了一个文件转换的程序,大概实现功能是这样的:将doc,docx,xls,xlsx,ppt,pptx...等类型文件拖进某个文件夹A,程序自动将所有文件转换成txt格式文件,并存储到另一个文件夹B,然后删除文件夹A中文件。一次性拖入十几二十个文件的话,转换速度还是挺快的,基本上可以实现一拖进去,文件夹A就被清空了。但是如果是几百个文件的话,就需要一定的时间了。我测试了很多次,479个文件完成整个过程大概需要35秒,这太慢了,太让人难受了。然后我就用多线程,但是经测试,并没有加快速度,基本上有用多线程跟没用没什么两样,这让我怀疑多线程到底能不能加快程序运行速度?当然也有可能是我的多线程写错了。如果各位有多线程的代码,请贴出来参考参考,最好多线程的思想是:有两个运算模块,让多线程分配两个线程,每个线程负责运行一个运算模块,并且是同时运行 展开
 我来答
10...6@qq.com
推荐于2017-12-16 · TA获得超过121个赞
知道答主
回答量:121
采纳率:0%
帮助的人:169万
展开全部
磁盘IO的速度在那里了,就算你再多的线程,也绕不过IO瓶颈。不是说多线程不能提高效率,这个要看你项目的性能瓶颈在哪里。 IO密集型,没必要多线程,容易弄巧成拙。建议Cache,某些文件系统在顺序读或写磁盘时速度相当快,如果恰好文件是顺序存储在磁盘上的,建议先尽量读进内存,再一次性写出去。其他什么磁盘内存通道之类的底层技术就不是Java能左右的了。
雪零星
2013-07-29 · TA获得超过1244个赞
知道小有建树答主
回答量:366
采纳率:0%
帮助的人:270万
展开全部
线程并不能提高速度,而是在执行某个耗时的功能时,在还可以做其它的事。多线程使你的程序在处理文件时不必显得已经卡死。
你可以试试这种方法,使用线程池,每个文件都是使用一个线程进行处理(我觉得你只是有了一个线程仍然进行的线性的处理。),最后使用消息handler 通知主线程工作完毕。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式