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

标签 python multithreading io

我对用 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/

相关文章:

c++ - boost::unique_lock 和 boost::shared_lock 用于读写锁

python - 如何从 python 文件中读取由自定义分隔符终止的记录?

android - Root Android - 在 root 拥有的目录中创建和读取文件

python - 将可变长度张量的集合保存到TensorFlow中的TFRecords文件中

python - Django 管理应用程序 : building a dynamic list of admin actions

python - 如何在 Django 中序列化 ImageField?

python - 了解 python 中的免费 OPC/UA 代码

python - 如何将元组转换为字典?

Java,使用Future从线程返回值

c++ - C++11 中的线程 ID 行为