python - 在 python 中处理大量数据,我应该使用多线程/进程吗?

标签 python multithreading python-2.7 multiprocessing data-processing

我正在编写一个程序来处理一个巨大的文件 (~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/

相关文章:

java - 如何实时读写一个进程并在JTextArea中实时显示输出? (Java Swing )

c# - ThreadPool 挫折 - 线程创建超过 SetMaxThreads

python-2.7 - 将来自 plt.imsave 的两个图像与不同的 cmap 连接起来,而无需安装另一个包

python - xlwings可以在后台运行excel吗?

python - 从外部网络访问 SimpleHTTPServer

java - 对于可运行存储对其自身正在运行的线程的引用有什么注意事项吗?

postgresql - 与打开事务的客户端连接出现意外的 EOF

Python快速从单个numpy数组中的多个文件获取数据的方法

python - 如何阻止 Plotly Scatter 创建不存在的 X 值

Python:提取 GLGCM 特征