JAVA开两个线程对不同的目录里的文件进行IO读写,性能没有变化

线程1 对目录A 

线程2 对目录B

各自且不干扰的 进行目录的遍历IO(两个线程都会各 new 一个文件IO处理类对象)

fileutil中用 LineIterator去读行,读一行计算md5,再用 bufferedwriter写出

读写都指定了utf8的编码

问题是为什么两个线程并发 总耗时和单线程耗时基本相同??

刚刚解决了一个log4j 的日志打印 有锁的问题,关闭打印能提高几秒,但是还是跟串行区别不大

 

串行53秒,并行48秒

你的线程使用不对吧,应该是异步执行被你使用成同步了。而且处理时间较长才能看出效果。

大佬贴一下代码

你的电脑是不是老电脑 还是X86的...
我很早以前遇到个类似问题,因为自己的电脑是单核的旧电脑,虽然使用多线程编码,但是机器仍然是单线程运行

查看核心数 CMD 输入:wmic 输入:CPU GET NumberOfCores,NumberOfLogicalProcessors