我正在编写一个程序来处理一个巨大的文件 (~1.5GB)。我在具有相当不错的 cpu(8 核)的 Windows 7 计算机上运行 Python 2.7。使用多个线程或进程会以任何方式提高效率吗?截至目前,处理整个事情大约需要一个小时。它以每秒大约 1000 条数据条目的速度处理,总共要处理超过 400 万条数据。
最佳答案
您需要的是 producer-consumer technique .这个网站上有一个很好的解释:Python producer/consumer with exception handling
第二个示例使用一个库来实现它 ( http://pypi.python.org/pypi/proconex/ ) 但不要这样做!这是一项非常基本的技术,您可以手动执行此操作并根据您的需要进行调整。
在您的情况下,读者将是生产者,处理将在多个消费者中完成。
如果最后需要合并数据,写入另一个Queue,让另一个线程写入/处理。
重要的是你profile your code .
关于python - 在 python 中处理大量数据,我应该使用多线程/进程吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21947432/