不影响磁盘读取速率的线程数?

时间:2018-01-20 16:51:18

标签: python multithreading io

我对在Python中将4个非常大的CSV文件读入数据帧的结果感到茫然: 我用一个单独的线程执行读取,即读取第一个CSV,然后读取第二个等等。它花了230秒。

有4个线程,一个线程读取一个CSV,在" parallel"需要花费220秒,2线程花费220秒。

我无法解释这一点,因为这表明没有整数个磁盘读取头是有意义的;如果存在单个磁头,那么程序的2线程和4线程版本将花费更长的时间,因为在切换线程时读取头在地址之间不断移动。如果它是2个或4个读头,那么两个多线程版本肯定会胜过单线程版本吗?

1 个答案:

答案 0 :(得分:2)

对磁盘的访问由操作系统管理,因此如果您尝试从同一磁盘并行读取,则无法获得真正的改进。我不确定有几个读头,但如果文件在不同的磁盘中,它会。

无论如何,你可以在这里找到更多信息。 multithread read from disk

希望这有帮助。