我对用 Python 将 4 个非常大的 CSV 文件读入数据帧的结果感到惊讶: 我用单线程串联执行读取,即读取第一个 CSV,然后读取第二个,依此类推。花了 230 秒。
使用 4 个线程,一个线程读取一个 CSV,“并行”需要 220 秒,使用 2 个线程则需要 220 秒。
我无法解释这一点,因为这表明没有整数数量的磁盘读头有意义;如果只有一个磁头,则程序的 2 线程和 4 线程版本都会花费更长的时间,因为随着线程切换,读取磁头不断在地址之间移动。如果是 2 个或 4 个读头,那么两个多线程版本肯定都会优于单线程版本吗?
最佳答案
对磁盘的访问由操作系统管理,因此如果您尝试从同一磁盘并行读取,您将不会获得真正的改进。我不太确定是否有多个读头,但如果文件位于不同的磁盘上,它会的。
无论如何,您可以在这里找到更多信息。 multithread read from disk
希望这有帮助。
关于python - 线程数不影响磁盘读取速率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48358675/