gpt4 book ai didi

python - Windows 上 Python 3 的多线程处理

转载 作者:行者123 更新时间:2023-11-30 23:45:25 24 4
gpt4 key购买 nike

我有一个用 Python 编写的数据处理任务,它使用 Python CSV 读取器读取一个巨大的 CSV 文件,验证每列中的数据,然后将每行以不同的格式写入新文件。然后数据被批量加载到数据库中。新 CSV 的创建大约需要 60 分钟,而加载的持续时间可以忽略不计。

我想加快 CSV 的创建速度,并且由于任务受 CPU 限制,显而易见的解决方案是尝试并行利用所有 12 个服务器核心并处理文件的部分。

我查看了这里提供的内容:http://wiki.python.org/moin/ParallelProcessing ,特别是并行 Python 库,这似乎正是我所需要的 ( http://www.parallelpython.com/content/view/17/31/ ),但它们似乎都不适用于 Python 3/Windows。

有谁知道可以满足我的需求的并行处理框架,或者关于实现我想要做的事情的最佳方法的任何其他建议?我正在寻找灵活的东西,同时希望避免重新发明轮子或处理困惑的细节。

最佳答案

您可以使用线程,但最终可能会导致线程锁定在 GIL 中。而且您还必须担心锁定问题。

因此我建议使用内置 multiprocessing模块,特别是“Pool ”对象。默认情况下,池将创建与您的计算机具有的核心数量一样多的工作进程。

在主进程中,创建一个工作池。然后,您可以使用 Pool.map_async()Pool.imap() 将函数应用于所有数据,前提是它是可迭代的形式。 Pool 对象会为您记录困惑的细节。

关于python - Windows 上 Python 3 的多线程处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9501251/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com